加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

XML解析之KissXML的使用

发布时间:2020-12-16 05:32:02 所属栏目:百科 来源:网络整理
导读:IOS中有关XML的解析有很多方法,之前在 使用GDataXML解析XML文档 一文中说明了如何使用Google提供的XML解析类来解析XML文件,今天使用另一个开源项目KissXML来解析XML文件,引入开源项目及配置项目的方式和之前那篇文章中一样,到 KissXML源码 下载源码并按
IOS中有关XML的解析有很多方法,之前在 使用GDataXML解析XML文档 一文中说明了如何使用Google提供的XML解析类来解析XML文件,今天使用另一个开源项目KissXML来解析XML文件,引入开源项目及配置项目的方式和之前那篇文章中一样,到 KissXML源码 下载源码并按照之前文章中提到的方式配置好即可。
配置完毕后,在AppDelegate.m(我建的是一个Empty工程)中引入如下头文件,编译通过就说明引入项目和配置成功了,马上就可以开始使用了。
[cpp] view plain copy
  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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读