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

GDataXMLNode解析xml数据的简单应用

2015-09-25 08:58 751 查看
利用第三方工具解析xml文件

<?xml version="1.0" encoding="UTF-8" ?>

<root>

<status>OK</status>

<categories>

<category_name>购物</category_name>

<subcategories>生活家居</subcategories>

<subcategories>服饰鞋包</subcategories>

<subcategories>食品饮料</subcategories>

<subcategories>钟表眼镜</subcategories>

<subcategories>水果生鲜</subcategories>

<subcategories>母婴用品</subcategories>

<subcategories>数码家电</subcategories>

<subcategories>影音书刊</subcategories>

<subcategories>个护化妆</subcategories>

<subcategories>珠宝饰品</subcategories>

</categories>

<categories>

<category_name>休闲娱乐</category_name>

<subcategories>运动健身</subcategories>

<subcategories>酒吧</subcategories>

<subcategories>私人影院</subcategories>

<subcategories>KTV</subcategories>

<subcategories>游乐游艺</subcategories>

<subcategories>温泉/浴场</subcategories>

<subcategories>演出/赛事/展览</subcategories>

<subcategories>公园</subcategories>

<subcategories>桌游/密室</subcategories>

<subcategories>DIY手工</subcategories>

<subcategories>足疗按摩</subcategories>

<subcategories>景点郊游</subcategories>

<subcategories>咖啡厅</subcategories>

<subcategories>茶馆</subcategories>

</categories>

</root>

以上是一个简单 的xml文件

GDataXMLNode使用方法:

// xml解析
- (NSArray *)readDataOfXML
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"Categories"
ofType:@"xml"];
NSData *xmlData = [NSData dataWithContentsOfFile:path];

//使用NSData对象初始化
GDataXMLDocument *doc = [[GDataXMLDocument alloc] initWithData:xmlData options:0
error:nil];
// 获取根节点 root
GDataXMLElement *rootElement = [doc rootElement];

//获取根节点下的节点(categories)
NSArray *categories = [rootElement elementsForName:@"categories"];
NSMutableArray *categoryArray = [NSMutableArray array];
NSMutableDictionary *dataDic = [NSMutableDictionary dictionary];
// 遍历数组
for (GDataXMLElement *element in categories) {
// 子节点数组中的第一个就是category_name 拿出来 作为字典的key
GDataXMLElement *nameElement = [[element elementsForName:@"category_name"]
objectAtIndex:0];
NSString *category_name = [nameElement stringValue];
// NSLog(@"%@", category_name);
[categoryArray addObject:category_name];
// 获取所有subcategories的子节点
NSArray *array = [element elementsForName:@"subcategories"];
NSMutableArray *tempArray = [NSMutableArray array];
// 遍历array 取得对应的值
for (GDataXMLElement *elem in array) {
NSString *str = [elem stringValue];
[tempArray addObject:str];
}
[dataDic setObject:tempArray forKey:category_name];
}
NSArray *arr = @[categoryArray, dataDic];
return arr;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: