#import "DomTool.h"
@implementation DomTool
+ (NSMutableArray *)startDomTool {
// 先獲取文件路徑
NSString *path = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"xml"];
// 把路徑下得文件變成NSData
NSData *data = [NSData dataWithContentsOfFile:path];
// 初始化數組
NSMutableArray *stuArr = [NSMutableArray array];
// 創建一個解析工具
// 第一個參數: 文件內容, NSData
// 第二個參數: 沒有用
// 第三個參數: 錯誤信息
NSError *error = nil;
GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options:0 error:&error];
// 獲取根節點
GDataXMLElement *rootElement = [document rootElement];
// 它可以按照指定的節點名進行篩選, 不需要逐行進行遍歷
NSArray *arr = [rootElement elementsForName:@"student"];
// 對滿足條件的節點進行遍歷
for (NSInteger i = 0; i < arr.count; i++) {
// 找到下標對應的節點
GDataXMLElement *stu = arr[i];
// 創建一個學生
Student *tempStu = [[Student alloc] init];
[stuArr addObject:tempStu];
[tempStu release];
GDataXMLElement *name = [[stu elementsForName:@"name"] lastObject];
NSString *stuName = [name stringValue];
tempStu.name = stuName;
GDataXMLElement *sex = [[stu elementsForName:@"sex"] lastObject];
NSString *stuSex = [sex stringValue];
tempStu.sex = stuSex;
GDataXMLElement *age = [[stu elementsForName:@"age"] lastObject];
NSString *stuAge = [age stringValue];
tempStu.age = stuAge;
}
return stuArr;
}
- (void)startDom {
// 先獲取文件路徑
NSString *path = [[NSBundle mainBundle] pathForResource:@"Student" ofType:@"xml"];
// 把路徑下得文件變成NSData
NSData *data = [NSData dataWithContentsOfFile:path];
// 初始化數組
self.stuArr = [NSMutableArray array];
// 創建一個解析工具
// 第一個參數: 文件內容, NSData
// 第二個參數: 沒有用
// 第三個參數: 錯誤信息
NSError *error = nil;
GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options:0 error:&error];
// 獲取根節點
GDataXMLElement *rootElement = [document rootElement];
// 它可以按照指定的節點名進行篩選, 不需要逐行進行遍歷
NSArray *arr = [rootElement elementsForName:@"student"];
// 對滿足條件的節點進行遍歷
for (NSInteger i = 0; i < arr.count; i++) {
// 找到下標對應的節點
GDataXMLElement *stu = arr[i];
// 創建一個學生
Student *tempStu = [[Student alloc] init];
[self.stuArr addObject:tempStu];
[tempStu release];
GDataXMLElement *name = [[stu elementsForName:@"name"] lastObject];
NSString *stuName = [name stringValue];
tempStu.name = stuName;
GDataXMLElement *sex = [[stu elementsForName:@"sex"] lastObject];
NSString *stuSex = [sex stringValue];
tempStu.sex = stuSex;
GDataXMLElement *age = [[stu elementsForName:@"age"] lastObject];
NSString *stuAge = [age stringValue];
tempStu.age = stuAge;
}
}
@end
XML 數據解析案例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.