XML解析:二、Dom解析

DOM解析
document object model(文档对象模型)
一次性全部读取
占内存,但对iOS影响很小,但对java影响很大
解析的时候,将文档整体的读入,并将XML结构化成树状,使用时,通过树枝来获取
DOM解析方式比较好的一个实现是Google提供的一个GData,是开源的,他是对libxml.dylib 的封装,也就是说需要导入类库,并且需要修改配置。
1、配置修改(以Xcode7.0为例):
1)添加libxml2.tbd文件
这里写图片描述
这里写图片描述
这里写图片描述
2)单将GData环境从ARC转到MRC;
这里写图片描述
2、开始解析
注:Message.txt文件见SAX解析

- (void)DomXmlAction{
    //模拟从网路上拿到数据
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Message" ofType:@"txt"];
    NSData *data = [NSData dataWithContentsOfFile:path];
    //开始解析
    //创建解析对象
    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
    //拿到根节点
    GDataXMLElement *root = doc.rootElement;
    //拿到子节点
    NSArray *modelArray = root.children;
    //初始化Data数组
    self.data = [NSMutableArray array];
    //遍历数组取到每一个model对应的节点
    for (GDataXMLElement *modelEle in modelArray) {
        Person *p = [[Person alloc] init];
        //获得属性节点数组
        NSArray *proArray = modelEle.children;
        for (GDataXMLElement *proEle in proArray) {
            [p setValue:proEle.stringValue forKey:proEle.name];
        }
        [self.data addObject:p];
    }
    //循环打印结果
    for (Person *p in self.data) {
        NSLog(@"%@--%@", p.name, p.sex);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值