您的位置:首页 > Web前端 > Node.js

XML数据解析(GDataXMLNode的使用)

2016-01-27 11:31 295 查看

一、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;
}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: