GDataXML的使用

来源:互联网 发布:复杂网络 研究热点 编辑:程序博客网 时间:2024/04/28 13:18

   IOS中用于解析XML文件的方法有很多,在SDK中也有自带的方法,但是大家更偏于应用第三方的库,一方面高效,另外一方面也更方便使用。下面就介绍一下其中一个第三方库GDataXML的使用,给自己留念!

将GDataXML库添加到自己的工程中得步骤:

1.将两个文件GDataXMLNode.h和GDataXMLNode.m拖拽到工程中。


2.到Target-->Build Phases-->Link Binary With Libraries路径下添加库 libxml2.dylib 到工程中。

3.到Target-->Build Settings-->Header Search Paths下,双击之后点击+按钮,添加 /usr/include/libxml2 到工程中,如下图:


4.到Target-->Build Settings-->Other Linker Flags下,添加 -lxml2 到工程中。

到此,配置结束,引用文件的头文件即可。


下面介绍一下这个库的使用:

我的XML文件如下:


解析代码如下:

//获取工程目录的xml文件    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"question" ofType:@"xml"];    NSData *xmlData = [[NSData alloc] initWithContentsOfFile:filePath];        //使用NSData对象初始化    GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData encoding:NSUTF8StringEncoding error:nil];    GDataXMLElement *rootElement = [doc rootElement];    //获取根节点下的节点(rating)    NSMutableArray *ratingAry = [[NSMutableArray alloc] initWithArray:[rootElement elementsForName:@"rating"]];        for (GDataXMLElement *rating in ratingAry) {        //rating节点的name属性        NSString *ratingName = [[rating attributeForName:@"name"] stringValue];        NSLog(@"rating name is:%@",ratingName);                NSArray *questionAry = [rating elementsForName:@"question"];                for (GDataXMLElement *question in questionAry) {            //获取title节点的值            GDataXMLElement *titleElement = [[question elementsForName:@"title"] objectAtIndex:0];            NSString *title = [titleElement stringValue];                        //获取a,b,c,d节点的值            GDataXMLElement *aElement = [[question elementsForName:@"a"] objectAtIndex:0];            NSString *a = [aElement stringValue];                        GDataXMLElement *bElement = [[question elementsForName:@"b"] objectAtIndex:0];            NSString *b = [bElement stringValue];                        GDataXMLElement *cElement = [[question elementsForName:@"c"] objectAtIndex:0];            NSString *c = [cElement stringValue];                        GDataXMLElement *dElement = [[question elementsForName:@"d"] objectAtIndex:0];            NSString *d = [dElement stringValue];                        GDataXMLElement *parseElement = [[question elementsForName:@"parse"] objectAtIndex:0];            NSString *parse = [parseElement stringValue];        }    }





0 0
原创粉丝点击