XML数据解析(GDataXMLNode的使用)

一、GDataXMLNode说明

GDataXMLNode是Google提供的用于XML数据处理的类集。该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持XPath语法。

使用方法:
     1、获取GDataXMLNode.h/m文件,将GDataXMLNode.h/m文件添加到工程中
     2、向工程中增加“libxml2.dylib”库
     3、在工程的“Build Settings”页中找到“Header Search Path”项,添加/usr/include/libxml2"到路径中
     4、添加“GDataXMLNode.h”文件到头文件中,如工程能编译通过,则说明GDataXMLNode添加成功
二、代码示例:
#import <Foundation/Foundation.h>
#import "GDataXMLNode.h"

#define USE_NET

#ifdef USE_NET
//网络文件
    #define PATH @"http:/XXX/xmlFile/BookXml.txt"
#else
//本地文件
    #define PATH @"/Users/Public/xmlFile/BookXml.txt"
#endif

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //1、读取XML文件内容
#ifdef USE_NET
        NSURL *url = [NSURL URLWithString:PATH];
        NSData *data = [NSData dataWithContentsOfURL:url];
#else
        NSData *data = [NSData dataWithContentsOfFile:PATH];
#endif
        //2、创建文档树
        GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
        //3、获取根元素(节点)
        GDataXMLElement *root = [doc rootElement];
        //4、获取根元素的所有子元素
        NSArray *ary = [root children];
        //5、提取books元素
        GDataXMLElement *books = ary[0];
        //6、获取books的所有子元素
        NSArray *bookElements = [books children];
        //7、遍历数组,解析每个元素
        for (GDataXMLElement *ele in bookElements) {
            //获取name元素
            NSArray *nameAry = [ele elementsForName:@"name"];
            NSLog(@"%@:%@\n", [nameAry[0] name],[nameAry[0] stringValue]);
            //获取id属性节点
            GDataXMLNode *idNode = [ele attributeForName:@"id"];
            NSLog(@"%@", [idNode stringValue]);
            //封装数据模型
            //创建对象,填充数据
            //保存到数组
        }
        
        
    }
    return 0;
}





 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值