数据处理:xml之dom解析

本片文章我们来介绍xml文件的另一种解析方法dom解析,先读取完整的xml文档,然后在内存中形成数的结构,在根据节点关系去获取数据,这里我们使用google提供的第三方类GDataXMLNode来解析,速度要比NSXMLParser的快.
首先把GDataXMLNode的两个文件拖入到我们的工程里去.


数据处理:xml之dom解析_第1张图片
屏幕快照 2016-02-07 下午1.58.08.png

GDataXMLNode需要先配置一下,方法请参考http://www.jianshu.com/p/7404ea214f43

配置完后我们就可以解析了
第一步:获取路径,转换data对象

NSString *string = [[NSBundle mainBundle]pathForResource:
@"person" ofType:@"txt"];
    NSData *data = [NSData dataWithContentsOfFile:string];

第二步:创建文档对象,此时文档里面存放的是树状结构的数据,并创建error对象

    NSError *error;
GDataXMLDocument *doucument = [[GDataXMLDocument 
alloc]initWithData:data options:0 error:&error];

获取文档的根节点

    GDataXMLElement *rootElement = doucument.rootElement;    

给目标数组开辟空间

    self.dataArray = [NSMutableArray arrayWithCapacity:3];

解析

    for (GDataXMLElement *subElement in rootElement.children) {

        Student *student = [Student new];
        for (GDataXMLElement *contentElement in subElement.children) {
            [student setValue:contentElement.stringValue 
forKey:contentElement.name];
        }
        
        [_dataArray addObject:student];
    }
    ```
   打印 验证结果
for (Student *stu in _dataArray) {
    NSLog(@"%@",stu);
}


你可能感兴趣的:(数据处理:xml之dom解析)