导入GData头文件
#import "GDataXMLNode.h"
<1>加载xml文件
<2>解析xml
// GDataXMLDocument 表示整个xml文档
//参数1: xml数据, 以后放上下载数据
//参数2: 默认0
//参数3: 一般设置为nil
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:data options:0 error:nil];
<3>从解析后的文档中获取数据
//核心: 使用XPath语法
//实例 CityName结点的XPath
// /root/SystemConfig/CityName
// 返回匹配xpath语法规则的结点数组
NSArray *array = [doc nodesForXPath:@"/root/systemConfig/CityName" error:nil];
GDataXMLElement *citName = [array firstObject];
NSLog(@"name=%@ value=%@",citName.name,citName.stringValue);
<4>获取带有属性的结点
NSArray *array = [doc nodesForXPath:@"/root/systemConfig/IntentionLevel/Item" error:nil];
for (GDataXMLElement *e in array) {
NSLog(@"name = %@",e.name);
//属性如何获取
// 结点的attributes包含的结点的所有属性
// 属性用GDataXMLElement
for(GDataXMLElement *a in e.attributes)
{
NSLog(@"attr name=%@ value=%@",a.name,a.stringValue);
}
}
<5>快速获取某种类型的结点 (项目中常用)
//实例: 获取所有的名字为Item的结点, 而不管在哪儿?
//XPath: //Item
NSArray *array = [doc nodesForXPath:@"//Item" error:nil];
for (GDataXMLElement *e in array) {
NSLog(@"-> %@",e.name);
}
<6>遍历xml文档
GDataXMLElement *root = doc.rootElement;
//获取一个结点子节点
root.children
//子节点个数
root.childCount
//获取某个名字的子节点
root elementsForName:<#(NSString *)#>
211

被折叠的 条评论
为什么被折叠?



