核心提示:需要使用第三方工具#import GDataXMLNode.h// 懒加载,使用的时候在进行初始化// 相对而言的是属性才有懒加载,需要重写getter方法- (NSMutableArray *)xm...
需要使用第三方工具
#import GDataXMLNode.h
// 懒加载,使用的时候在进行初始化
// 相对而言的是属性才有懒加载,需要重写getter方法
- (NSMutableArray *)xmlDOMArray
{
if (_xmlDOMArray == nil) {
_xmlDOMArray = [NSMutableArray array];
}
return _xmlDOMArray;
}
@property (nonatomic, strong) NSMutableArray *xmlDOMArray;
- (IBAction)XMLDOMButtonDidClicked:(UIButton *)sender {
// 1、拿到 xml 文件的路径
NSString *path = [[NSBundle mainBundle] pathForResource:@myData ofType:@xml];
// 2、根据路径获取文件内容为 NSData 对象
NSData *data = [[NSData alloc] initWithContentsOffile:path];
// 3、根据 data 初始化一个 GDataXMLDocument 对象 先(引入第三方类库并且)
GDataXMLDocument *xmlDocument = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
// 4、拿到根节点
GDataXMLElement *rootElement = [xmlDocument rootElement];
// 5、开始解析
NSArray *studentArray = [rootElement elementsForName:@student];
for (GDataXMLElement *element in studentArray) {
// 拿到 name 节点 只有一个节点
GDataXMLElement *nameElement = [[element elementsForName:@name] firstObject];
// 拿到 sex 节点
GDataXMLElement *sexElement = [[element elementsForName:@sex] firstObject];
// 拿到 phone 节点
GDataXMLElement *phoneElement = [[element elementsForName:@phone] firstObject];
// 创建一个modal
StudentModal *modal = [[StudentModal alloc] init];
// 取出节点的值
modal.name = [nameElement stringValue];
modal.sex = [sexElement stringValue];
modal.phoneNumber = [phoneElement stringValue];
// 使用了懒加载,不能用 _xmlDOMArray
[self.xmlDOMArray addObject:modal];
}
for (StudentModal *student in self.xmlDOMArray) {
NSLog(@%@, %@, %@, student.name, student.sex, student.phoneNumber);
}
[self.xmlDOMArray removeAllObjects];
}