XML解析之KissXML的使用

前端之家收集整理的这篇文章主要介绍了XML解析之KissXML的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
IOS中有关XML的解析有很多方法,之前在 使用GDataXML解析XML文档 一文中说明了如何使用Google提供的XML解析类来解析XML文件,今天使用另一个开源项目KissXML来解析XML文件,引入开源项目及配置项目的方式和之前那篇文章中一样,到 KissXML源码 下载源码并按照之前文章中提到的方式配置好即可。
配置完毕后,在AppDelegate.m(我建的是一个Empty工程)中引入如下头文件,编译通过就说明引入项目和配置成功了,马上就可以开始使用了。
  1. #import"DDXML.h"
  2. #import"DDXMLElementAdditions.h"

KissXML支持XPath,使用XPath非常方便,有关XPath的说明可以参照这篇文章XPath教程,我们这里也使用XPath来解析。
AppDelegate.m中方法
copy
    -(BOOL)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions
  1. {
  2. self.window=[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
  3. //Overridepointforcustomizationafterapplicationlaunch.
  4. self.window.backgroundColor=[UIColorwhiteColor];
  5. [self.windowmakeKeyAndVisible];
  6. //从工程目录获取XML文件
  7. NSString*path=[[NSBundlemainBundle]pathForResource:@"users"ofType:@"xml"];
  8. //获取NSData对象并开始解析
  9. NSData*xmlData=[NSDatadataWithContentsOfFile:path];
  10. [selfparseXML:xmlData];
  11. returnYES;
  12. }

解析XML的方法 copy
    -(void)parseXML:(NSData*)data
  1. //文档开始(KissXML和GdataxML一样也是基于DOM的解析方式)
  2. DDXMLDocument*xmlDoc=[[DDXMLDocumentalloc]initWithData:dataoptions:0error:nil];
  3. //利用XPath来定位节点(XPath是XML语言中的定位语法,类似于数据库中的sql功能
  4. NSArray*users=[xmlDocnodesForXPath:@"//User"error:nil];
  5. for(DDXMLElement*userinusers){
  6. NSString*userId=[[userattributeForName:@"id"]stringValue];
  7. NSLog(@"Userid:%@",userId);
  8. DDXMLElement*nameEle=[userelementForName:@"name"];
  9. if(nameEle){
  10. NSLog(@"Username:%@",[nameElestringValue]);
  11. }
  12. DDXMLElement*ageEle=[userelementForName:@"age"];
  13. if(ageEle){
  14. NSLog(@"Userage:%@",[ageElestringValue]);
  15. }
  16. }

编译运行后输出结果如下:



这样就通过使用KissXML实现了对XML文件的解析,相比于GdataxML,KissXML在解析速度上有所提高,但是内存开销会稍微大一点,随着IOS设备内存的不断增大,解析速度会成为首要考虑的条件。
以上仅供学习参考,谢谢分享
原文出处:http://blog.csdn.net/tangren03/article/details/7926268
原文链接:https://www.f2er.com/xml/300585.html

猜你在找的XML相关文章