GDataXML的使用

本文介绍如何使用第三方库GDataXML解析iOS中的XML文件。通过详细步骤指导如何将库集成到项目,并提供示例代码来展示如何读取和解析XML数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   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];
        }
    }





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值