#import "GDataXMLNode.h"
//创建xml文档
GDataXMLDocument *document = [[GDataXMLDocument alloc]initWithData:httpRequest.downloadDatas options:0 error:0];
//取出所有promotion节点
NSArray *array = [document nodesForXPath:@"//promotion" error:nil];
//建模
for (GDataXMLElement *element in array) {
ZKModel *model = [ZKModel modelWithEle:element];
[_datas addObject:model];
}
使用GData库
#import "GDataXMLNode.h"
//1.找到xml文档
NSString *path = [[NSBundle mainBundle]pathForResource:@"xml" ofType:@"txt"];
//2.将数据转化成NSData类型
NSData *data = [NSData dataWithContentsOfFile:path options:0 error:nil];
//3.解析
//将xml文件转化成三方库可以识别的文档
GDataXMLDocument *document = [[GDataXMLDocument alloc]initWithData:data options:0 error:nil];
//通过xpath语法找到根节点下所有的名字为systemConfig的节点
NSArray *array = [document nodesForXPath:@"//systemConfig" error:nil];
//拿到当前的systemConfig节点
//GDataXMLElement:代表一个节点
GDataXMLElement *element = array[0];
//拿到所有名字为CityName的节点
NSArray *subArray = [element elementsForName:@"CityName"];
//拿到下标为0的节点
GDataXMLElement *subElement = [subArray firstObject];
//对节点的一些操作
// NSLog(@"节点的名字:%@,节点的值:%@",subElement.name,subElement.stringValue);
// //当节点是叶子节点时,孩子是自身
// NSLog(@"孩子:%@,孩子的个数:%i",element.children,subElement.childCount);
//找根节点
//注意:要用文档对象去取根节点
GDataXMLElement *rootElement = [document rootElement];
//节点的一些属性
//找到IntentionLevel节点
NSArray *intenArray = [element elementsForName:@"IntentionLevel"];
GDataXMLElement *intentionLevelElement = intenArray[0];
NSArray *itemArray = [intentionLevelElement elementsForName:@"Item"];
GDataXMLElement *itemElement = itemArray[0];
//当前节点的所有属性
NSArray *attributeArray = itemElement.attributes;
//注意:节点中的一个属性也是一个节点
//得到key="1"这个属性节点
GDataXMLElement *subAttributeEle = attributeArray[0];
NSLog(@"属性节点的key:%@,value:%@",subAttributeEle.name,subAttributeEle.stringValue);
使用KissXML库 :#import "DDXML.h"
//1.找路径
NSString *path = [[NSBundle mainBundle]pathForResource:@"xml" ofType:@"txt"];
//2.转化成NSData数据格式
NSData *data = [NSData dataWithContentsOfFile:path];
//3.进行解析
DDXMLDocument *document = [[DDXMLDocument alloc]initWithData:data options:0 error:nil];
NSArray *array = [document nodesForXPath:@"//systemConfig" error:nil];
DDXMLElement *element = array[0];
//获取整个的当前节点
NSLog(@"当前节点:%@",element.XMLString);