数据处理:xml之dom解析

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


屏幕快照 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);
}


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,886评论 18 139
  • 解析的基本概念 解析: 从事先规定好的格式中提取数据 解析的前提: 提前约定好格式,数据提供方按照格式提供数据,数...
    云之君兮鹏阅读 1,870评论 4 28
  • 1. XML总结 1.1. XML简介 XML : 可扩展的标记语言。(和HTML非常类似的) 可扩展的。 自定义...
    Ethan_Walker阅读 3,114评论 0 12
  • 解析的概念 解析:从事先规定好的格式中提取数据。 解析的前提:提前约定好格式,数据提供方按照格式提供数据,数据获取...
    逗逗豆豆笑阅读 1,166评论 2 14
  • 曾经在我刚做代理的时候就翻过雪姐的朋友圈,看完过后给我的第一感觉就是雪姐是很有韧劲的女子,有一种通过自己的双手营造...
    夢旅人阅读 454评论 0 1