时间:2014-07-03 13:23:24 来源: 复制分享
XMLPerformance测试应用程序扩展到比较第三方库
有很多选择,当谈到关于iPhone的XML解析。 在iPhone SDK中配有两个不同的库可供选择,并有几种流行的资料,例如TBXML,TouchXML,KissXML,TinyXML的第三方库和GDataXML。 发展商如何选择?
最近我一直在考虑了各种选择在那里寻找,并最终延长苹果XMLPerformance样品试用上述各图书馆,了解他们如何运作,并比较它们的性能。 我想我会分享我所学到迄今他人谁可能是为他们的iPhone项目的最佳XML库搜索。
在本文中,我们将给予的功能和最流行的iPhone图书馆性能的详细对比,说明它们之间如何选择,给一个示例项目演示如何读取使用上述库每个XML数据。
SAX的主场迎战的DOM
在我们开始之前,我想确保每个人之间最重要的区别XML解析器知道:是否是一个SAX解析器或一个DOM解析器。
SAX解析器是在你的代码分析器通知作为遍历XML树,你是通过负责保持跟踪状态和建设的任何对象你可能想游行保持分析器跟踪的数据。
阿甲的DOM解析器读取整个文件,并建立了一个在内存中的表示,你可以查询不同的元素。 通常情况下,你甚至可以构建XPath查询退出特别件。
好吧,现在让我们讨论的一些库!
最受欢迎的XML分析器为iPhone
在我的研究,这里就是在我看来是为iPhone最流行的XML解析器,以及每个一简要介绍:
NSXMLParser是一个SAX解析器SDK中包含的iPhone默认的。 这是写在Objective - C和使用非常简单,但也许没有那么容易,因为DOM模型。
libxml2的是一个开放源码库,包括iPhone SDK的默认情况下使用。 这是一个基于C的API,所以有点更多的工作比使用NSXML。 该库同时支持DOM和SAX处理。 该处理器的libxml2的SAX特别的凉爽,因为它有一个能够解析它的独特功能正在读取数据。 例如,你可以从网络上阅读大量的XML文档并显示数据,您正在阅读它给用户,而你还在下载。
TBXML是一个轻量级的DOM XML解析器设计得尽可能快,而资源消耗少的内存。 它节省了验证时间不执行,不支持XPath和由被只读 - 即你可以阅读它的XML,但是你不能再修改XML和写回来。
TouchXML是NSXML风格的DOM的XML解析器的iPhone。 TBXML一样,它也是只读的,但它不像TBXML支持XPath。
KissXML是另一个NSSXML风格的DOM XML解析器的iPhone,其实TouchXML的基础上。 主要区别是KissXML还支持编辑和编写XML以及阅读。
TinyXML的是一个小型的C -基于DOM的XML解析器头只包含4个C文件和两个。 它同时支持读取和编写XML文件,但它不支持自己的XPath。 但是,您可以使用相关的库 - 该TinyXPath - 。
GDataXML是另一个NSXML风格的DOM XML解析器的iPhone,谷歌开发作为图书馆的一部分,他们的Objective - C的客户端。 短短的m文件和一个头组成,它同时支持阅读和编写XML文档和XPath查询。
好吧,现在让我们开始比较所有这些库!
应用XML解析器的性能比较
苹果公司已经作出了出色的代码示例调用XMLPerformance,让您所花费的时间比较分析一个?900KB的XML文件,其中前300的iTunes同时与NSXML libxml2的宣传短片和歌曲。
该示例允许您选择一个分析方法,然后分析该文件,并就如何保持长时间才下载的文件,并解析数据库中的文件的统计。 然后,您可以到屏幕上看到一个统计,平均每个方法下载和解析时间。
我认为这将是一个理想的方法来测试各种API如何相互执行,使我扩大了样本,以包括上述图书馆。 你可以下载下面如果您想尝试它在您的设备更新项目。 它也可作为如何使用上述API的每个好例子!