切换导航
首页
技术问答
编程语言
前端开发
移动开发
开发工具
程序设计
行业应用
CMS系统
服务器
频道导航
▸ PHP
▸ Java
▸ Java SE
▸ Python
▸ C#
▸ C&C++
▸ Ruby
▸ VB
▸ asp.Net
▸ Go
▸ Perl
▸ netty
▸ Django
▸ Delphi
▸ Jsp
▸ .NET Core
▸ Spring
▸ Flask
▸ Springboot
▸ SpringMVC
▸ Lua
▸ Laravel
▸ Mybatis
▸ Asp
▸ Groovy
▸ ThinkPHP
▸ Yii
▸ swoole
▸ HTML
▸ HTML5
▸ JavaScript
▸ CSS
▸ jQuery
▸ Bootstrap
▸ Angularjs
▸ TypeScript
▸ Vue
▸ Dojo
▸ Json
▸ Electron
▸ Node.js
▸ extjs
▸ Express
▸ XML
▸ ES6
▸ Ajax
▸ Flash
▸ Unity
▸ React
▸ Flex
▸ Ant Design
▸ Web前端
▸ 微信小程序
▸ 微信公众号
▸ iOS
▸ Android
▸ Swift
▸ Hybrid
▸ Cocos2d-x
▸ Flutter
▸ Xcode
▸ Silverlight
▸ cocoa
▸ Cordova
前端之家
XML
XML解析之KissXML的使用
XML解析之KissXML的使用
2020-05-18
XML
前端之家
前端之家
收集整理的这篇文章主要介绍了
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和G
datax
ML一样也是基于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
文件
的解析,相比于G
datax
ML,KissXML在解析速度上有所提高,但是内存开销会稍微大一点,随着IOS设备内存的不断增大,解析速度会成为首要考虑的条件。
以上仅供学习参考,谢谢
分享
。
原文出处:
http://blog.csdn.net/tangren03/article/details/7926268
原文链接:https://www.f2er.com/xml/300585.html
上一篇:深入学习XML和XSD
下一篇:anychart xml文件详解
猜你在找的XML相关文章
10分钟掌握XML、JSON及其解析
引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而...
作者:前端之家 时间:2020-08-12
[CXF REST标准实战系列] 一、JAXB xml与javaBean的转换
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere...
作者:前端之家 时间:2020-08-12
[CXF REST标准实战系列] 一、JAXB xml与javaBean的转换
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere...
作者:前端之家 时间:2020-08-12
10分钟掌握XML、JSON及其解析
http://blog.jobbole.com/79252/ 引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技...
作者:前端之家 时间:2020-08-12
自定义圆形控件RoundImageView并认识一下attr.xml
(点击上方公众号,可快速关注) 公众号:smart_android 作者:耿广龙|loonggg 点击“阅读原...
作者:前端之家 时间:2020-08-12
10分钟掌握XML、JSON及其解析
引言 NOKIA 有句著名的广告语:“科技以人为本”。任何技术都是为了满足人的生产生活需要而...
作者:前端之家 时间:2020-08-12
10分钟掌握XML、JSON及其解析(上)
(点击上方公众号,可快速关注) 来源: Long Luo 的博客 链接:http://longluo.github.i...
作者:前端之家 时间:2020-08-12
10分钟掌握XML、JSON及其解析(中)
接上文 二、JSON XML很好很强大,但是最近有另外一个时代弄潮儿,这就是JSON。现在JSON的光...
作者:前端之家 时间:2020-08-12
10分钟掌握XML、JSON及其解析(下)
接上文 2.4 如何解析JSON? Android JSON所有相关类,都在org.json包下。 包括JSONObject、...
作者:前端之家 时间:2020-08-12
10分钟掌握XML、JSON及其解析
原文出处: Long Luo 的博客(@Long_Luo) 引言 NOKIA 有句著名的广告语:“科技以人...
作者:前端之家 时间:2020-08-12
编程分类
HTML
HTML5
JavaScript
CSS
jQuery
Bootstrap
Angularjs
TypeScript
Vue
Dojo
Json
Electron
Node.js
extjs
Express
XML
ES6
Ajax
Flash
Unity
React
Flex
Ant Design
Web前端
微信小程序
微信公众号
最新文章
• 10分钟掌握XML、JSON及其解
• [CXF REST标准实战系列] 一
• [CXF REST标准实战系列] 一
• 10分钟掌握XML、JSON及其解
• 自定义圆形控件RoundImage
• 【XML】
• 10分钟掌握XML、JSON及其解
• 10分钟掌握XML、JSON及其解
• 10分钟掌握XML、JSON及其解
• 10分钟掌握XML、JSON及其解
热门标签
更多 ►
关闭广告
单独headers
封装代码
提示错误
整数正则
非0开头
跳页
出页码
antd table
提示URL未注册
公众号支付
vue hash模式
iSlider
车牌键盘
循环图片
echarts 双折
左右布局
DllPlugin
对象创建
打字游戏
圈选
两栏
云函数
蒙版
ES2020
橱窗
无缝滚动轮播
色块碰撞
组件销毁
文档操作