您的位置:首页 > 理论基础 > 计算机网络

IOS网络笔记--xml解析之一(dom解析)

2015-10-13 19:42 309 查看
申明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨

/*
xml解析方式分为:
1.系统提供的方式sax
2.第三方控件解析方式dom (本篇只讲dom解析)

dom解析步骤
0 导入第三方类
1 在根据指示修改环境(在文章最下面)
2 创建GDataXMLDocument
3 获取根节点
4 取出标签中的属性
5 (根据要求)取出标签外面的元素elementsForName...objectAtIndex...stringValue 或者里面的属性attributeForName...stringValue
*/

附上Demo和素材:http://yunpan.cn/cFJwrqpbJZunX (提取码:f105)(ps 素材是demo中的example.xml)

// dom解析数据
// 创建文档
GDataXMLDocument *doc = [[GDataXMLDocument alloc]initWithData:data options:0 error:nil];
// 创建根节点
GDataXMLElement *rootElement = [doc rootElement];
GDataXMLElement *a1Element = [[rootElement elementsForName:@"a1"]objectAtIndex:0];

// 取出 <>的内部属性
NSString *key1 =[[a1Element attributeForName:@"key1"]stringValue];
NSLog(@"key1 == %@",key1);

// 取出 <>的内部属性
NSString *key2 = [[a1Element attributeForName:@"key2"]stringValue];
NSLog(@"key2 == %@",key2);

// 取出 <>的外部属性
GDataXMLElement *name1 = [[rootElement elementsForName:@"name1"]objectAtIndex:0];
NSString *name1Key1 = [name1 stringValue];
NSLog(@"name1Key1 == %@",name1Key1);

GDataXMLElement *secondElement = [[rootElement elementsForName:@"second"]objectAtIndex:0];
GDataXMLElement *a2Element = [[secondElement elementsForName:@"a2"]objectAtIndex:0];

// 取出 <>的内部属性
NSString *a2Key1 = [[a2Element attributeForName:@"key1"]stringValue];
NSLog(@"a2Key1 == %@",a2Key1);

// 取出 <>的内部属性
NSString *a2Key2 = [[a2Element attributeForName:@"key2"]stringValue];
NSLog(@"a2key2 == %@",a2Key2);

// 取出 <>的外部属性
GDataXMLElement *name2 = [[secondElement elementsForName:@"name2"]objectAtIndex:0];
NSString *name2Key1 = [name2 stringValue];
NSLog(@"name2Key1 == %@",name2Key1);

// 取出 <>的外部属性
GDataXMLElement *int2 = [[secondElement elementsForName:@"int2"]objectAtIndex:0];
NSString *int2key = [int2 stringValue];
NSLog(@"int2 == %@",int2key);











或者还是把自动释放池打开,采用单独使用手动释放第三方类的内存方法

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