加入收藏
|
设为首页
|
会员中心
|
我要投稿
李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
首页
站长资讯
随写记事
云计算
大数据
运营中心
综合聚焦
数据库
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
#import"DDXML.h"
#import"DDXMLElementAdditions.h"
KissXML支持XPath,使用XPath非常方便,有关XPath的说明可以参照这篇文章:XPath教程,我们这里也使用XPath来解析。
AppDelegate.m中方法:
copy
-(
BOOL
)application:(UIApplication*)applicationdidFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
self.window=[[UIWindowalloc]initWithFrame:[[UIScreenmainScreen]bounds]];
//Overridepointforcustomizationafterapplicationlaunch.
self.window.backgroundColor=[UIColorwhiteColor];
[self.windowmakeKeyAndVisible];
//从工程目录获取XML文件
NSString*path=[[NSBundlemainBundle]pathForResource:@
"users"
ofType:@
"xml"
];
//获取NSData对象并开始解析
NSData*xmlData=[NSDatadataWithContentsOfFile:path];
[selfparseXML:xmlData];
return
YES;
}
解析XML的方法:
copy
-(
void
)parseXML:(NSData*)data
//文档开始(KissXML和GDataXML一样也是基于DOM的解析方式)
DDXMLDocument*xmlDoc=[[DDXMLDocumentalloc]initWithData:dataoptions:0error:nil];
//利用XPath来定位节点(XPath是XML语言中的定位语法,类似于数据库中的SQL功能)
NSArray*users=[xmlDocnodesForXPath:@
"//User"
error:nil];
for
(DDXMLElement*userinusers){
NSString*userId=[[userattributeForName:@
"id"
]stringValue];
NSLog(@
"Userid:%@"
,userId);
DDXMLElement*nameEle=[userelementForName:@
"name"
];
if
(nameEle){
NSLog(@
"Username:%@"
,[nameElestringValue]);
}
DDXMLElement*ageEle=[userelementForName:@
"age"
];
if
(ageEle){
NSLog(@
"Userage:%@"
,[ageElestringValue]);
}
}
编译运行后输出结果如下:
这样就通过使用KissXML实现了对XML文件的解析,相比于GDataXML,KissXML在解析速度上有所提高,但是内存开销会稍微大一点,随着IOS设备内存的不断增大,解析速度会成为首要考虑的条件。
以上仅供学习参考,谢谢分享。
原文出处:
http://blog.csdn.net/tangren03/article/details/7926268
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
相关内容
Oracle number插入小数后值发生变化
MSHFlexgrid和MSflexgrid控件异同
Swift Swizzle
InflateException:Binary XML file line #105: Error infl
c# – Windows Phone 7(芒果)应用程序在放入后台时断开连接
react页面中引用本地图片的方法
ajax+servlet+mysql表格分页
[swift]-闭包前oc中block的说明
Oracle的substr和instr函数简单用法
SQLite批量插入优化方法
推荐文章
站长推荐
如何确定XmlNode是否具有特定属性?
在自己应用的XML中,使用系统资源
使用 sqllite 小结
精通正则表达式
AJAX 中文参数 乱码问题
ruby-on-rails – 如何在Rails 3中启用内存和对象
c# – 解析用于在Silverlight中渲染的“真正”字
oracle:数值型函数,日期函数,转换函数,组函数
react-native static使用方法
如何避免在分配器中重新绑定c 17
热点阅读