码迷,mamicode.com
首页 > 其他好文 > 详细

使用第三方DOM解析XML文件

时间:2016-05-12 13:02:06      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

第一步:引入动态库
技术分享
第二步:拖入第三方文件
第三放文件网址 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 Other Linker Flags contain
//
// -lxml2
技术分享
这时引入的文件是MRC的,让其能在ARC的环境下运行需要更改设置
技术分享
需要更改单个文件是否采用ARC来进行编译有两种情况,我们的实际情况就应用到了下面的第二种

两种情况
1.自己的旧项目没有使用ARC,但是引入的第三方库却是使用了ARC的。
2.自己的新项目使用了ARC,但是引入的第三方库或者以前写的代码却没有使用ARC。

这两种情况下,直接肯定是通不过编译的。可以通过升级旧项目,让其使用ARC来解决,但这个办法有时候会很麻烦。
有一个简单的办法就是,可以指定单个文件是否采用ARC来进行编译。
方法就是在Build Phase里面的Compile Source里面找到需要特殊处理的文件,加上编译选项(Compiler Flags),具体针对上面两种情况有所区别。

1.对于第一个情况,给采用了ARC的源文件,添加-fobjc-arc选项
2.对于第二种情况,添加-fno-objc-arc

准备工作已完成,这时可以就可以根据xml文件解析数据了

// 1. 获取文件的路径
    NSString *path = [[NSBundle mainBundle] pathForResource:@"StudentInfo_xml" ofType:@"txt"];
    // 2.根据路径获取data类型的数据
    NSData *data = [NSData dataWithContentsOfFile:path];
    // 初始化数组
    self.dataArray = [NSMutableArray array];
    // 3.设置DOM解析
    NSError *error = nil;
    GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithData:data options:0 error:&error];
    // 4.获取根节点
    GDataXMLElement *rootElement = document.rootElement;
    // 5.遍历获取相对应的子节点
    for (GDataXMLElement *studentElement in rootElement.children) {
        Student *stu = [Student new];
        // 遍历子节点的子节点
        for (GDataXMLElement *stuElement in studentElement.children) {
//            NSLog(@"stuElement = %@", stuElement);
            // 根据标签给student对象赋值
            // stuElement.name相当于标签的名字
            // stuElement.stringValue标签
            // kvc
            [stu setValue:stuElement.stringValue forKey:stuElement.name];
        }

        // 在子循环的时候添加到数组
        [self.dataArray addObject:stu];
    }

    // 遍历检验

    for (Student *stu in self.dataArray) {
        NSLog(@"name = %@, sex = %@, age = %@, hobby = %@", stu.name, stu.sex, stu.age, stu.hobby);
    }

使用第三方DOM解析XML文件

标签:

原文地址:http://blog.csdn.net/sinat_34885883/article/details/51362415

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!