使用第三方DOM解析XML格式文件

   在解析XML格式文件的时候,使用SAX解析需要实现好多代理方法,比较难记,也容易出错,现在介绍一种由Google推出的第三方DOM(Document Object Model)来解析XML文件。
  1. 首先将该第三方文件拖到工程中。谷歌下载地址:https://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/

    (注:由于该三方是很久之前的版本,还是基于MRC格式下的代码,所以需要改成ARC兼容的格式,在后面会提到)

    将三方拖到工程中之后大家会发现有好多红色警告,不要怕,因为我们需要下面的设置:

  2. ( 1)设置Header Search Paths

    (2)设置Other Linker Flags

    (3)将MRC格式的文件设置成在ARC下可以运行

    (4)别忘了引入libxml2.tbd动态库:

     上述步骤完成后就可以运用DOM进行XML的解析啦,这里直接贴出代码供大家参考:
    
    //1.获取文件路径
    NSString *path = [[NSBundle mainBundle] pathForResource:@"StudentInfo_xml" ofType:@"txt"];
    //2.根据路径获取Data类型的数据
    NSData *data = [NSData dataWithContentsOfFile:path];
    //3.设置DOM解析 document object model
    GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
    //4.获取根节点
    GDataXMLElement *rootElement = document.rootElement;
    //5.遍历获取相对应的子节点
    for (GDataXMLElement *studentElement in rootElement.children) {
        Student *stu = [Student new];
        //继续遍历 得到子节点的子节点
        for (GDataXMLElement *stuElement in studentElement.children) {
            //根据标签给student对象赋值
            // .name 标签名字  .stringValue标签的值
            [stu setValue:stuElement.stringValue forKey:stuElement.name];

        }
        //把遍历出来的stu数据存在本地数组中
        [self.dataArray addObject:stu];
    }
    //遍历检验
    for (Student *stu in self.dataArray) {
        NSLog(@"%@", stu);
    }
时间: 2024-09-29 15:38:08

使用第三方DOM解析XML格式文件的相关文章

iOS dom解析xml格式数据

问题描述:接口返回的是xml格式数据,而且节点名居然都是相同的,采用了dom解析最终解决 一.文件导入 1.下载GDataXMLNode.h 和 GDataXMLNode.m文件,导入工程(csdn文件下载链接:http://download.csdn.net/detail/wusangtongxue/9502292) 2.配置环境: (1)改成ARC环境(-fno-objc-arc): (2)找到“Paths\Header Search Paths”项,并添加“/usr/include/lib

使用第三方DOM解析XML文件

第一步:引入动态库 第二步:拖入第三方文件 第三放文件网址 https://code.google.com/p/gdata-objectivec-client/source/browse/trunk/Source/XMLSupport/ 根据文件的的要求在工程中添加相应的字段 // libxml includes require that the target Header Search Paths contain // // /usr/include/libxml2 // // and Oth

dom4解析xml格式文件实例

最近,一哥们在他们公司搞大数据时遇到一份比较棘手的xml文件,需要进行巧妙合理的解析,然后将数据进行封装和保存,由于文件比较大,数据比较多,格式稍微复杂一点,所以我帮他解决,刚拿到文件也觉得无从下手,因为文件中的数据格式确实有点复杂.以下给4种常见的xml文件的解析方式的分析对比: DOM DOM4J JDOM SAX 解析XML文件的几种方式和区别答: Dom解析 在内存中创建一个DOM树,该结构通常需要加载整个文档然后才能做工作.由于它是基于信息层次的,因而DOM被认为是基于树或基于对象的,

Java生成和解析XML格式文件和字符串的实例代码

1.基础知识:Java解析XML一般有四种方法:DOM.SAX.JDOM.DOM4J. 2.使用介绍1).DOM(1)简介 由W3C(org.w3c.dom)提供的接口,它将整个XML文档读入内存,构建一个DOM树来对各个节点(Node)进行操作.优点就是整个文档都一直在内存中,我们可以随时访问任何节点,并且对树的遍历也是比较熟悉的操作:缺点则是耗内存,并且必须等到所有的文档都读入内存才能进行处理. (2)示例代码: 1.基础知识:Java解析XML一般有四种方法:DOM.SAX.JDOM.DO

iOS:使用第三方DOM解析XML文件

第一步:引入动态库 第二步:拖入第三方文件 根据文件的的要求在工程中添加相应的字段 // libxml includes require that the target Header Search Paths contain // // /usr/include/libxml2 // // and Other Linker Flags contain // // -lxml2 这时引入的文件是MRC的,让其能在ARC的环境下运行需要更改设置 需要更改单个文件是否采用ARC来进行编译有两种情况,我

java DOM解析xml文件出现#text节点解决方案

java DOM解析xml文件出现#text节点解决方案 原生java解析xml的方法提供了两个,DocumentBuilder 和 SAXParser. 试了第一个DOM方法,在解析输出节点过程中,getNodeName()输出节点名发现多出了几个#text节点. text.xml <?xml version="1.0" encoding="UTF-8"?> <!-- xml解析测试文件 --> <LData> <ldat

DOM解析XML文件

除了可以使用SAX解析XML文件,大家也可以使用熟悉的DOM来解析XML文件. DOM解析XML文件时,会将XML文件的所有内容读取到内存中,然后允许您使用DOMAPI遍历XML树.检索所需的数据.使用DOM操作XML的代码看起来比较直观,并且,在某些方面比基于SAX的实现更加简单.但是,因为DOM需要将XML文件的所有内容读取到内存中,所以内存的消耗比较大,特别对于运行Android的移动设备来说,因为设备的资源比较宝贵,所以建议还是采用SAX来解析XML文件,当然,如果XML文件的内容比较小

使用DOM解析XML文件

首先写了一个xml文件 <?xml version="1.0" encoding="UTF-8"?> <bookstore> <book id="1"> <name>c#</name> <author>张三</author> <year>1990</year> <price>60</price> </book&

JAVA中使用DOM解析XML文件

JAVA中使用DOM解析XML文件: 创建DocumentBuilderFactory的对象                                 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 创建DocumentBuilder对象 通过documentBuilder对象的parser方法加载xml文件到当前项目下 获取所有XML文件内节点的集合    getElementsByTagName()方