iOS平台XML解析类库对比概述(iPhone网络篇一)

WCF与iOS跨平台SOAP通信实战:HTTP+XML协议穿透指南 SOAP是一种基于XML的标准化Web服务协议,依托HTTP传输实现跨系统互操作;其核心在于严格的消息信封结构、命名空间约束与SOAPAction头机制。该协议虽被REST/JSON逐步替代,但在遗留系统集成、金融合规接口及异构终端对接中仍具不可替代性。技术价值体现在零第三方依赖、防火墙友好、契约清晰可调试,适用于.NET后台与macOS/iOS/嵌入式设备间的轻量级数据通道构建。本文聚焦WCF basicHttpBinding与原生NSURLConnection协同下的端到端实现,还原无SDK时代如何通过 阅读详情

在iPhone开发中,XML的解析有很多选择,仅iOS SDK就提供了NSXMLParser和libxml2两个类库,还有如TBXML、TouchXML、KissXML、TinyXML和GDataXML等第三方类库。

解析XML通常有两种方式:DOM和SAX

  •  DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(称“节点树”),之后就通过遍历树结构可以检索任意XML节点,读取它的属性和值。而起通常情况下,可以借助XPath,直接查询XML节点。
  • SAX解析XML,是基于事件通知的模式,一边读取XML文档一边处理,不必等整个文档加载完之后才采取操作,当在读取解析过程中遇到需要处理的对象,会发出通知对其进行处理。

一般在iOS平台下,比较常用的XML解析类库有如下几种:

  1. NSXMLParser     这是一个SAX方式解析XML的类库,默认包含在iOS SDK中,使用也比较简单。(下次专门总结学习)
  2. libxml2     是一套默认包含在iOS SDK中的开源类库,它是基于C语言的API,所以使用起来相对不太方便,但它同时支持DOM和SAX解析,尤其是它的SAX解析方式很酷,可以边读边解析,非常适用于从网上下载一个很大的XML文件,可极大提供解析效率。
  3. TBXML     是一套轻量级的DOM方式的XML解析类库,有很好的性能和低内存占用,不过它不对XML格式进行校验,不支持XPath,并且只支持解析,不支持对XML进行修改。
  4. TouchXML   这也是一套DOM方式的XML解析类库,支持XPath,不支持XML的修改。
  5. KissXML   这是一套基于TouchXML的XML解析类库,只不过实现了支持XML的修改。 
  6. TinyXML   这是一套小巧的基于C语言的DOM方式进行XML解析的类库,支持对XML的读取和修改,不直接支持XPath,需要借助TinyXPath才可以支持XPath。
  7. GDataXML  它是Google开发的DOM方式XML解析类库,支持读取和修改XML文档,支持XPath方式查询。

以上几大类库,在读取很小的XML文档上,性能基本没有差别,不过从调用的方便性来说,建议使用TouchXML、KissXML或GDataXML。

如果是需要读取和修改XML文档,建议使用KissXML或GDataXML。

如果需要读取非常大的XML文档,则建议使用libxml2或TBXML。

不想使用第三方类库,则就使用iOS自带的NSXMLParser。

tinyxml和libxml2 东西不算新东西,全部是从别人那里盗过来的 但代码都亲自进行了调试,并将他人的测试桩都补充的相当完整,并重写了Makefile 立即下载

相关推荐

基于tinyxml2的xml操作库再封装

对tinyxml2再封装,使使用更加便捷,方便。*******************************

xml解析类库对比

在iPhone开发中,XML的解析有很多选择,仅iOS SDK就提供了NSXMLParser和libxml2两个类库,还有如TBXML、TouchXML、KissXML、TinyXML和GDataXML等第三方类库。 解析XML通常有两种方式:DOM和SAX  DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(称“节点树”),之后就通过遍历树结构可以检索任意XML节点,读取

3G-肖阳 1669

langchain入门学习笔记

langchain快速入门

1731

xml解析库对比总结(解析方式,第三方库,TinyXml)

一. 解析方式 xml的2种解析方式(DOM和SAX解析方式):https://blog.youkuaiyun.com/weixin_42472048/article/details/81264570 dom解析和sax解析区别: dom方式解析 根据xml的层级结构在内存中分配一个树形结构,把xml的标签,属性和文本都封装成对象 优点:很方便实...

惊鸿一博 1万+

CAN XL和10Base-T1S全对比:在区域架构中如何选择最适合的车载通信协议?

本文深入对比了CAN XL和10Base-T1S在车载网络架构中的性能差异,通过实测数据和典型应用场景分析,为区域架构设计提供选型指南。重点探讨了带宽、延迟、成本等关键指标,帮助工程师在ADAS传感器部署和车身控制网络优化中做出明智选择。

pear55的博客 594

西门子博图指令(定时器操作三)

西门子博图定时器中复位定时器功能指令介绍

yue008的博客 8873

xml 转xsd->xsd转c,c++

fromhttp://blog.youkuaiyun.com/mynameiscloud/article/details/6616989 Trang 是一种命令行的可以XML生成XSD的工具,生成XML文件对应的XSD文件只需要3个简单的步骤: 第一步  下载Trang 从http://www.thaiopensource.com/relaxng/trang.html 上下载trang-

occupy8的专栏 5300

ldpc编解码器设计与仿真

计算校验节点到变量节点的消息 m_{c \to v}=2 \cdot atanh(\prod_{v’ \in N©\setminus v}tanh(\frac{m_{v’ \to c}}{2}))。计算变量节点到校验节点的消息 m_{v \to c}=L_{v,0}+\sum_{c’ \in M(v)\setminus c}m_{c’ \to v}。◦ 对于每个变量节点 v,计算最终 LLR 值 L_{v,f}=L_{v,0}+\sum_{c \in M(v)}m_{c \to v}。

youngerwang的博客 808

Tinyxml简单使用法

1、概要介绍一下: 尝试了tinyxml,rapidxml,libxml2等3中第3方库,前两者相对较为轻量级,libxml2非常完善,强大。 这是网上总结出来的优缺点: 1、tinyxml当节点内容的空而使用GetText()方法时候会出错 2、rapidxml编码问题不是特别好 3、libxml2对内存释放要求较高,否则时常遇到core dump. TinyXML是一个

andyhuabing的专栏 9586

地理空间智能体(GI Agent)

地理空间智能体(Geospatial Intelligence Agent, GI Agent)是AI Agent技术与地理信息系统(GIS)深度融合的产物。其核心是以大型语言模型(LLM)为驱动,通过自然语言理解、任务分解和工具调用能力,实现地理空间任务的自动化执行。​关键特性​自主性​:独立规划任务流程(如空间数据检索、分析、可视化);​交互性​:支持自然语言对话交互,替代传统图形界面操作;​扩展性​:灵活集成第三方工具和API,支持跨平台协作。

百态·数智思维 | 聚焦大数据、量化与未来AI 2032

第77步 时间序列建模实战:多因素预测 vol-2(以决策树回归为例)

第77步 时间序列建模实战:多因素预测 vol-2(以决策树回归为例)

Jet4505的博客 1008

iPhone开发技巧之网络篇(1)— 解析XML A

博主:易飞扬 原文链接:http://www.yifeiyang.net/iphone-web-development-techniques-of-the-chapter-1-parsing-xml/ 转载请保留上面文字。 iPhone 的XML库XML 解析与内存占用libxml2 vs NSXMLParserNSXMLParser 的例子...

123

SAP_SD模块信用管理-最早未清项判断逾期

在 SAP SD 模块的信用管理(Credit Management) 中,系统可以通过 最早未清项(Oldest Open Item) 来判断客户是否存在逾期,从而影响订单的信用检查结果。例如: 定义最大未清项目%为1%,未清天数为1天,即允许客户“逾期1天的未清应收帐款/该客户的应收帐款余额”最大比例为1%,若超过1%则将被信用冻结。的信用检查功能,用于判断客户是否有账龄过长的未清款项,并据此决定是否允许新的销售订单继续处理。然后在查看客户的信贷信息可以看到,最早的未清信息显示在系统中。

我小时候很黑的博客 863

iOS SDK中使用NSXMLParser解析XML(iphone网络篇三)

iOSSDK的NSXMLParser解析XML文档是事件驱动模式的,即采用SAX方式来解析XML格式文档。NSXMLParser在处理XML文档的过程中当遇到一些要素(元素、属性、CDATA块、评论等)时会通知它的委托,而自身不对解析的要素进行任何处理,全权委托给NSXMLParserDelegate处理。同时它也会报告错误。1. 打开一个xml文件,读取内容到NSData中。 ...

dlt86904的博客 134

从零开始之驱动发开、linux驱动(七、字符驱动之led最终版)

我们上一接用的gpiolib非常杂乱,使用了两种 1.各硬件厂商实现的,如s3c_gpio_cfgpin(S5PV210_GPJ0(5), S3C_GPIO_SFN(1)) 2.系统公共的,如gpio_set_value(S5PV210_GPJ0(4),val) 其实公共的也是对各硬件厂商的封装,用那个都可以,个人建议用系统公共的,应为这样换芯片厂商,不影响任何使用。   2.错误处理基...

To_run_away的博客 2386

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

iPhone中XML处理以及网络上的图片显示

xml处理: iPhone开发中,XML处理的方式与.net区别很大。个人感觉没有donot那么方便。苹果sdk中提供了NSXMLParser这个类库来解析xml。它需要一个url作为输入参数,通过NSXMLParser的委托方法来解析这个xml文件。NSXMLParser中主要有三个委...

chenqunan3231的博客 147

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

iOS-iphone网络编程总结

iphone网络编程总结 一:确认网络环境3G/WIFI1. 添加源文件和framework开发Web等网络应用程序的时候,需要确认网络环境,连接情况等信息。如果没有处理它们,是不会通过Apple的审(我们的)查的。Apple 的 例程 Reachability 中介绍了取得/检测网络状态的方法。要在应用程序程序中使用Reachability,首先要完成...

Watchmen0320的博客 200

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

XML教程适用于iOS:如何选择最佳的XML解析器为您的iPhone项目

XML教程适用于iOS:如何选择最佳的XML解析器为您的iPhone项目  雷Wenderlich 于2010年3月2日 鸣叫 如果你是新这里,你可能想订阅我的RSS提要 ,或按照我的Twitter的 。 感谢您访问! XMLPerformance测试应用程序扩展到比较第三方库 有很多选择,当谈到关于iPhone

侯文富的专栏 1117

一些iOS高效开源类库

本站除标注[FW]和资讯文章外都为原创文章,转载请注: 转载来源: Coming X 原文链接: 一些iOS高效开源类库 ——————————————– 因为iOS SDK相对比较底层,所以开发者就得受累多做一些体力活。不过幸运的是,有很多第三方的类库可以用来简化很多不必要的工作。笔者整理了一下在本人学习过程中用到的一些比较有用Objective-C开源类库,既是做一个总结,同时也希望

程序员写的技术 FAQ 和杂文 961

iPhone解析XML显示网络上的照片

http://www.ibm.com/developerworks/cn/xml/x-iosslideshow/   创建用于 iPad 的 iOS 幻灯片应用程序   常用缩写词 IDE:集成开发环境iOS:苹果的移动操作系统OS X:苹果用于 Macintosh计算机的操作系统 为 iOS 设备如 iPad 或 iPhone 编写应用程序是非常受欢迎的活动,这毫不奇怪。这些设备

上海-相奇 博客技术资源分享 1610
上一篇: 【IOS】利用ASIHTTPRequest 实现一个简单的登陆验证
下一篇: 如何使用JSON Framework库解析与生成json数据(iphone网络篇二)
iOS-董彬
博客等级 码龄13年 29粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值