xml 数据的 DOM 解析方式
2015-07-20 16:58
375 查看
需要使用第三方工具
#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]; }
相关文章推荐
- boost库在windows下的编译和使用
- iOS 渐变色
- CentOS7.1下生产环境Keepalived+Nginx配置
- 2027 统计元音
- 创建canvas
- C#写入对象或集合类型数据到xml文件的方法
- Linux进程间通信——使用信号
- sgu291:Evolution(暴力)
- AJAX 前后台数据交互
- 让ul中的li变成横向排列
- 删除xcode 里的多余证书
- 居中
- PyQt的Layout的比例化分块。
- HDU 2612
- jquery.scrollLoading-min.js实现图片延迟加载
- Ajax请求后页面刷新问题
- 【转】关于RabbitMQ
- MySQL安装及基础使用
- KSum问题
- Linux下调整根目录的空间大小