文章来源
http://ixhan.com/2010/03/tutorial-of-kissxml-iphone/
KissXML 是我觉得最简单方便的XML解析器了,更重要是很简单的支持Xpath
在项目中使用前先简单配置下.
- 在这里下载源代码 here
- 添加除了DDXMLTesting 外的文件
- 根据下图配置libxml
打开项目属性
添加如下内容
OTHER_LDFLAGS = -lxml2
HEADER_SEARCH_PATHS = /usr/include/libxml2
如图

然后就可以使用KissXML了
<smil xmlns="http://www.w3.org/2000/SMIL20/CR/Language">
<head>
</head>
<body>
<par dur="120000ms" >
<text region="Text" src="att000.txt" />
</par>
<par dur="120000ms" >
<text region="Text" src="att010.txt" />
</par>
<par dur="10000ms" >
<img region="Image" src="att020.jpg"/>
</par>
<par dur="120000ms" >
<text region="Text" src="att040.txt" />
</par>
<par dur="10000ms" >
<img region="Image" src="att120.gif"/>
</par>
</body>
</smil>
我们的目标是获取该xml媒体内容的 src 地址
//hack to remove xmlns => avoid xpath search not works
xmlStr = [xmlStr stringByReplacingOccurrencesOfString:@"xmlns" withString:@"noNSxml"];
NSMutableArray* contents = [NSMutableArray array];
NSError* error = nil;
DDXMLDocument* xmlDoc = [[DDXMLDocument alloc] initWithXMLString:xmlStr options:0 error:&error];
if (error) {
NSLog(@"%@",[error localizedDescription]);
return nil;
}
NSArray* resultNodes = nil;
resultNodes = [xmlDoc nodesForXPath:@"//audio | //text | //image | //img" error:&error];
if (error) {
NSLog(@"%@",[error localizedDescription]);
return nil;
}
for(DDXMLElement* resultElement in resultNodes)
{
NSString* name = [resultElement name];
//audio , text or other media type
NSString* fileName = [[resultElement attributeForName:@"src"] stringValue];
// 0.txt
}
注意第一行,我把xmlns给删除了,(否则kissxml无法正常使用xpath,原因位置)
分享到:
相关推荐
KissXML是一个强大的、开源的XML解析库,特别适合在iOS项目中使用。 首先,让我们深入了解XML。XML是一种标记语言,它允许开发者定义自定义的标签来描述数据。它的主要特点包括: 1. 结构化:XML文档通过标签定义...
"KissXML"是针对iPhone平台的一个强大的XML解析库,它允许开发者高效地处理XML文档,并将其内容映射到Objective-C中的字典结构,便于进一步的处理和操作。 KissXML库由Robbie Hanson开发,它是一个Objective-C实现...
KissXML解析是iOS开发中处理XML数据的一种高效方法,特别是在iPhone应用开发中。XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用于网络数据交换、配置文件存储等场景。KissXML库是Objective-C...
XML 解析器 KissXML ,KissXML 是适合在 Mac 和 iOS 平台下使用的 XML 解析器,采用 Objective...
KissXML 在没有 NSXML 的环境(例如 iOS)中为 Apple 的 NSXML 类库提供了替代品。 它是在事实上的 libxml2 C 库之上实现的,该库预装在 Mac 和 iOS 上。 但这使您免受所有讨厌的低级C指针和malloc的干扰,并提供了...
本教程将重点介绍如何在iPhone应用中进行XML解析,使开发者能够理解并有效地处理XML数据。 首先,我们需要了解XML的基本概念。XML是一种标记语言,它的结构由元素(Elements)、属性(Attributes)、文本内容(Text...
《Iphone团购信息客户端:KissXML、ASIHttpRequest与AQGridView的应用详解》 在iOS开发领域,构建一款高效且功能完善的iPhone团购信息客户端是一项技术挑战。本项目巧妙地结合了KissXML、ASIHttpRequest和...
本实例将介绍如何在iOS项目中使用KISSXML库进行XML解析。 KISSXML是一个强大的、Objective-C实现的XML解析库,它提供了XML解析和生成的功能,适用于iOS和macOS平台。导入KISSXML库到你的项目中,你可以通过简单的...
在iPhone开发中,处理XML文件有多种解析库,包括GDataXML、TinyXML、KissXML、TouchXML和TBXML。这些解析器各有特点,适用于不同的场景。 1. **GDataXML** GDataXML是Google开源的一个Objective-C库,基于libxml2...
XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的开放标准通信协议,主要用于即时通讯(IM)和在线状态管理。这个“XMPP第三方资源导入包”显然包含了用于开发XMPP应用所需的类库和组件,使得...
还有说用TBXML、KissXML等等的 可是NSXMLParse要实现代理,多出一大堆代码,你就不能解析完给我一个对象就好了? 还有GDataXML,又得加库,又得加头文件路径,关键是没搞成功,看着真是醉了 还有其他的TBXML, ...
demo-xmpp-ios 概述 XMPPFramework Basic客户端依赖使用包。 一,项目设置 打开Xcode并选择创建一个新项目 在项目编辑器中选择“单视图应用程序”  ...
KissXml xml解析 json oc版 json cpp版 Reachabiliy 网络状态判断 libcurl c语言静态网络库 armv6 armv7 liblua lua解析器静态库 armv6 armv7 i386 EGO 上拉,下拉刷新 HUD hud显示 utarray 包含数组 链表和hash的...
Objective-C提供了几种方式来解析XML,包括NSXMLParser、GDataXMLNode和KissXML等库。 1. **NSXMLParser**:这是苹果官方提供的XML解析器,它是一个事件驱动的解析器。在解析过程中,每当遇到XML文档的某个部分(如...
3. KissXML:由于iOS并不提供原生的NSXML支持,KissXML被用作XML解析和处理的替代方案。添加Vendor/KissXML文件夹,并确保Xcode知道在哪里能找到libxml2的头文件,并在编译时链接libxml2库。 4. libidn:这个库用于...
`KissXML`是一个Objective-C版的libxml2库,它提供了与`NSXMLParser`类似的接口,但功能更加强大。`HTMLKit`则是一个现代的HTML解析器,它提供了一个完整的DOM API,可以方便地遍历和修改HTML文档。 在压缩包`...
帮助文档和URL链接可能指向了更详细的使用教程或开发者社区,便于用户深入理解和改进这个应用。 总之,这款“虎嗅网RSS阅读器应用”的源码为iOS开发者提供了一个实践案例,展示了如何整合KissXML、正则表达式和...
包含AFNetWorking,CoreData,GCD,KissXMl,NsPredicate,NSTHread,NSSession,Popover,SDwebImage,sql,经纬度转换,触底刷新,FLV布局,代码操作数据库,反向传值,录音,视频播放,同步请求,网络请求,系统地图...
解析HTML,我们可以使用如KissXML或者GDataXML等库,它们提供了XML和HTML的解析功能。然而,ASI框架本身并不包含HTML解析器,所以需要额外引入解析库。 在获取HTML内容后,我们需要从中提取特定字段。这通常涉及...
本教程将详细介绍如何在iOS中将XML格式的数据转换为JSON格式。 首先,理解XML和JSON的基本概念。XML是一种标记语言,用于描述数据结构,其数据以树形结构呈现,每个元素都可以包含其他元素和属性。JSON则是一种轻量...