GDataXML的配置和使用

1.下载链接:http://code.google.com/p/gdata-objectivec-client/downloads/list下载“gdata-objective-c client library.”

2.项目引入: 解压缩文件,找到Source\XMLSupport,并且将其中的GDataXMLNode.h 和 GDataXMLNode.m文件拖到项目中

3. 项目编译支持配置:

1). 选中项目,选中“Build Settings”标签页

2 ). 将Build Settings页中,顶部的“Basic”标签切换到“All”

3). 找到“Paths\Header Search Paths”项,并添加“/usr/include/libxml2”到列表中

4). 找到“Linking\Other Linker Flags”项,并添加“-lxml2”到列表中

4。 在要用到的地方引入“#import "GDataXMLNode.h"”

然后就可以使用了,下面的是一个自己项目 中使用的小例子

 1 /**

 2  解析webservice返回的XML成一个NSDictionary

 3  参数:content ,要解析的数据

 4  参数:path   ,要解析的XML数据一个根节点

 5  返回:NSDictionary

 6  */

 7 + (NSDictionary *)getWebServiceXMLResult:(NSString *) content xpath:(NSString *)path

 8 {

 9     NSMutableDictionary *resultDict = [[NSMutableDictionary alloc] init];

10     content =  [content stringByReplacingOccurrencesOfString:@"&lt;" withString:@"<"];

11     content =  [content stringByReplacingOccurrencesOfString:@"&gt;" withString:@">"];        

12     content = [content stringByReplacingOccurrencesOfString:@"xmlns" withString:@"noNSxml"];

13     NSError *docError = nil;

14     GDataXMLDocument *document = [[GDataXMLDocument alloc] initWithXMLString:content options:0 error:&docError];

15     if(!docError)

16     {

17         NSArray *children = nil;

18         children = [document nodesForXPath:[NSString stringWithFormat:@"//%@",path] error:&docError];

19         if(!docError)

20         {

21             if(children && [children count]>0)

22             {

23                 GDataXMLElement *rootElement = (GDataXMLElement *)[children objectAtIndex:0];

24                 NSArray *nodearr = [rootElement children];

25                 for (int i = 0; i<[nodearr count]; i++) {

26                     GDataXMLElement *element = (GDataXMLElement *)[nodearr objectAtIndex:i];

27                     [resultDict setObject:[element stringValue] forKey:[element name]];

28                 }

29             }

30         }

31     }

32     [document release];

33     return [resultDict autorelease];

34 }

 

你可能感兴趣的:(Data)