码迷,mamicode.com
首页 > 其他好文 > 详细

GDataXMLNode解析XML数据详解

时间:2015-06-10 20:50:49      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:

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


1。 引入lib文件:libxml2.dylib
2。 向工程中添加include 步骤:XCode4.3下点击工程,在TARGETS中的Build Setting中的搜索框中输入head,找到Header Search Paths 并向其添加/usr/include/libxml2
3。拷贝GDataXMLNode.h、GDataXMLNode.m文件到工程下
4。添加头文件GDataXMLNode.h 并加上< NSURLConnectionDataDelegate, NSURLConnectionDelegate>
5。在viewDidLoad方法中:
NSString *path=@“带http的网址”;
NSURLRequest *request=[[NSURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15];  
[NSURLConnection connectionWithRequest:request delegate:self];
  [request release];

6。-(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response{  
              NSMutableData *data=[[NSMutableData alloc]init];
              self.receivedData=data;
}
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
             [self.receivedData appendData:data];
}
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
              GDataXMLDocument *document=[[GDataXMLDocument alloc]initWithData:self.receivedData options:0 error:nil];                                   GDataXMLElement *root=[document rootElement];
              NSArray *array=[root elementsForName:@"news"];
           for (GDataXMLElement *element in array) {
                       GDataXMLElement *title1=[element elementsForName:@"title"].lastObject;
                       GDataXMLElement *time1=[element elementsForName:@"time"].lastObject;
                       GDataXMLElement *ID1=[element elementsForName:@"id"].lastObject;

                       //声明一个新闻对象然后赋值,并存入数组
                       self.news=[[News alloc]init];
                       self.news.title=[title1 stringValue];
                       self.news.time=[time1 stringValue];
                       self.news.newsID=[ID1 stringValue];  
                       [self.mutableArray addObject:self.news];  
                }  
}

GDataXMLNode解析XML数据详解

标签:

原文地址:http://www.cnblogs.com/huangzs/p/4567191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!