一、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添加成功
二、GDataXMLNode解析
-(NSArray *)parseXML:(NSString *)xmlName
{
//使用NSBundle对象获取到需要解析的xml文档的路径
NSString *path = [[NSBundle mainBundle]pathForResource:xnlName ofType:@"XML"]];
//使用NSFileHandle对象根据文件路径获取到文件
NSFileHandle *file = [NSFileHandle fileHandleForReadingAtPath:path];
//读取文件内容返回NSData对象
GDataXMLDoucument *doc = [[GDataXMLDoucument alloc] initWithData:data];
//如果是要根据xml字符串来初始化CDataXMLDoucument对象,则调用如下代码
//GDataXMLDoucument *doc = [[GDataXMLDoucument alloc] initWithXMLString:xmlStr options:0 error:nil];
//获取跟元素,也就是获取<books.../>元素
GDataXMLElement *rootElement = [doc rootElement];
//获取rootElement下所有的<books.../>元素,返回所有<books.../>元素组成的集合
NSArray *bookElements = [rootElement elementsForName:@"book"];
//初始化一个可变数组,用于存储将要获取的所有<books.../>元素的内容
NSMutableArray *books = [NSMutableArray new];
//循环遍历每一个<books.../>元素
for(GDataXMLElement *bokElement in bookElements)
{
//初始化FKBook数据模型对象
FKBook *book = [FKBook new];
//将获取的属性值和元素内容存储到FKBook对象的属性中
book.booID = [[[bokElement attributeForName:@"id"] stringValue] intergerValue];
//将每一个FKBook对象添加到可变数组中
[books addObject:book];
}
//返回数组
return [books copy];
}