GDataXMLNode解析XML

1.注意两点,一.添加/usr/include/libxml2   二.将GDataXMLNode.m设置为MRC

 1 #import "GDataViewController.h"
 2 #import "GDataXMLNode.h"
 3 #import "Student.h"
 4 #import "Cartoon.h"
 5 @interface GDataViewController ()
 6 //数组属性
 7 @property (nonatomic,strong) NSMutableArray *stuArray;
 8 @property (nonatomic,strong) NSMutableArray *cartoonArray;
 9 @end
10
11 @implementation GDataViewController
12
13 - (void)viewDidLoad {
14     [super viewDidLoad];
15     // Do any additional setup after loading the view.
16 }
17
18 - (void)didReceiveMemoryWarning {
19     [super didReceiveMemoryWarning];
20     // Dispose of any resources that can be recreated.
21 }
22 - (IBAction)didClickGDataXMLButton:(id)sender {
23     self.stuArray = [NSMutableArray array];
24     //获取XMLData
25     NSData *xmlData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"XML_stu" ofType:@"txt"]];
26     //读入整个XML,返回类型GDataXMLDocument文档
27     GDataXMLDocument *xmlDocment = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:nil];
28     //获取根节点
29     GDataXMLElement *rootElement = xmlDocment.rootElement;
30     //获取根节点下的所有子节点
31     NSLog(@"%@",rootElement.children);
32     for (GDataXMLElement *studentELe in rootElement.children) {
33         //创建学生对象
34         Student *stu = [[Student alloc] init];
35         //获取学生节点下子节点的值
36         for (GDataXMLElement *valueEle in studentELe.children) {
37             //KVC赋值
38             [stu setValue:valueEle.stringValue forKey:valueEle.name];
39
40         }
41         //添加到数组
42         [self.stuArray addObject:stu];
43         NSLog(@"%@",self.stuArray);
44     }
45 }
46 - (IBAction)didClickCartoonButton:(id)sender {
47     //cartoon的数组
48     self.cartoonArray = [NSMutableArray array];
49     //获取XMLData
50     NSData *xmlData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Cartoon" ofType:@"xml"]];
51     //获取文档
52     GDataXMLDocument *xmlDocment = [[GDataXMLDocument alloc] initWithData:xmlData options:0 error:nil];
53     //获取根节点
54     GDataXMLElement *rootElment = xmlDocment.rootElement;
55     for (GDataXMLElement *results in rootElment.children) {
56
57         for (GDataXMLElement *albumInfoEle in results.children) {
58             Cartoon *cartoon = [[Cartoon alloc] init];
59             for (GDataXMLElement *valueEle in albumInfoEle.children) {
60                 if ([valueEle.name isEqualToString:@"name"] || [valueEle.name isEqualToString:@"desc"]) {
61                     [cartoon setValue:valueEle.stringValue forKey:valueEle.name];
62                 }
63
64             }
65             [self.cartoonArray addObject:cartoon];
66
67         }
68     }
69     //NSLog(@"%@",self.cartoonArray);
70     for (Cartoon *car in self.cartoonArray) {
71         NSLog(@"名字:%@,简介:%@",car.name,car.desc);
72     }
73 }
时间: 2024-08-09 10:09:13

GDataXMLNode解析XML的相关文章

GDataXMLNode解析XML数据详解

解析 XML 通常有两种方式,DOM 和 SAX:dom实现的原理是把整个xml文档一次性读出,放在一个树型结构里.在需要的时候,查找特定节点,然后对节点进行读或写.他的主要优势是实现简单,读写平衡:缺点是比较占内存,因为他要把整个xml文档都读入内存,文件越大,这种缺点就越明显.sax的实现方法和dom不同.他只在xml文档中查找特定条件的内容,并且只提取需要的内容.这样做占用内存小,灵活,正好满足我们的需求.他的缺点就是写,有些资料介绍了写入的方法,但是我感觉这对本例没有必要. NSXMLP

【iOS开发-网络】两种常用的方法解析XML数据

解析XML数据常用的有两种方法 第一种 使用Google的GDataXMLNode解析XML数据 使用的是DOM方式解析 先把xml一口吞掉 然后一点一点的解析 第二种 使用苹果自带的NSXMLParser解析XML数据 使用的是SAX方式解析 一个标记一个标记的解析 第一种使用步骤 第一步 首先把GDataXML文件夹放入项目中 第二步 更改Bulid Setting里面的东西 更改头文件搜索路径 在Header Search Paths里面添加路径/usr/include/libxml2 在

GDataXMLNode创建和解析XML

GDataXMLNode创建xml: #import <Foundation/Foundation.h> 2 #import "GDataXMLNode.h" 3 4 int main() 5 { 6 NSError *error; 7 //创建根节点 8 GDataXMLElement *rootElement = [GDataXMLNode elementWithName:@"abc"]; 9 //创建第一个子节点 10 GDataXMLElemen

IOS学习:常用第三方库(GDataXMLNode:xml解析库)

IOS学习:常用第三方库(GDataXMLNode:xml解析库) 分类: ios开发学习2013-05-30 09:45 4443人阅读 评论(0) 收藏 举报 iOSXMLGDataXMLNode 一.GDataXMLNode说明 GDataXMLNode是Google提供的用于XML数据处理的类集.该类集对libxml2--DOM处理方式进行了封装,能对较小或中等的xml文档进行读写操作且支持XPath语法. 使用方法: 1.获取GDataXMLNode.h/m文件,将GDataXMLNo

iOS 用GDataXMLNode创建和解析XML

原文地址:http://blog.csdn.net/gf771115/article/details/7718403 NSError *error; //    NSString *path = [[NSBundle mainBundle] pathForResource:@"testxml" ofType:@"xml"]; //    NSString *content = [[NSString alloc] initWithContentsOfFile:path

IOS开发使用NSXMLParser、GDataXML两种方式解析XML数据

概括:XML数据解析方式有 *IOS原生的NSXMLParser,只支持SAX方式解析,使用简单 *C语言的libxml2,同时支持DOM和SAX方式解析 *google的GDataXML,只支持DOM方式解析,基于libxml2,使用时需要将编译环境配置为非ARC,并添加libxml2.dylib动态库 GDataXMLDocument 1 使用GDataXML的DOM方式解析XML,需要导入#import "GDataXMLNode.h" /** *  DOM方式解析XML数据 *

GDataXML之解析XML

??                                          第一部分  使用GDataXML写XML文件 /* <!-- 7.客户端请求通讯录信息 --> <iq type="get" from="[email protected]/3a5054e5" to="localhost" id="123456"> <query xmlns="jabber:iq:ro

iOS-数据解析XML解析的多种平台介绍

在iPhone开发中,XML的解析有很多选择,iOS SDK提供了NSXMLParser和libxml2两个类库,另外还有很多第三方类库可选,例如TBXML.TouchXML.KissXML.TinyXML和GDataXML.问题是应该选择哪一个呢? 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过遍历树结构可以检索任意XML节点,读取它的属性和值.而且通常情况下,可以借助XPath,直接查询XML节点. SAX

解析XML文件的两种方式 SAX和DOM

1.数据解析 解析的基本概念 所谓“解析”:从事先规定好的格式中提取数据 解析的前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JSON解析 2.XML数据结构 XML:Extensible Markup language(可扩展标记语言),主流数据格式之一,可以用来存储和传输数据. XML数据格式的功能 数据交换 内容管理 用作配置文件 XML数据结构的语法 声明 节点使用一对标签表示:起始和结束标签. 根节点是起始节点,只有一