我找不到这些解析技术的比较。哪一个最常用?

的问候。 穆斯塔法

有帮助吗?

解决方案

NSXMLParser是一个 SAX 解析器,这意味着它会逐步浏览XML文档并通知您(通过委托方法)各种事件(例如启动xml节点,查找属性等)。这种类型的XML处理最适合解析大型文档,当您只需要从大文件中检索少量数据时。

与SAX相比, DOM 模型将整个XML树解析为内存(通常只需一次调用),然后您就可以从呈现的API中自由地浏览XML文档。这通常更容易使用,因为您可以随机访问整个xml文档。

所以应该回答的第一个问题是SAX vs DOM问题。如果您想要使用大型XML文件(例如10 MB或更大),您可能希望坚持使用SAX。如果您正在处理小型XML文件或小型XML片段,那么使用DOM通常会容易得多。

如果您确实决定使用DOM,那么您有几个选择。

libxml2是一个用C编写的非常强大的API。它主要用于DOM样式,但如果你对它有经验,还有其他选择。但是,由于它是用C语言编写的,对于那些更熟悉Objective-C(对象和自动释放)或者来自.Net世界的人来说,它通常不具吸引力。因此,需要/期望围绕libxml的本机Objective-C包装器使其更熟悉。 TouchXML就是这样一个包装器。如果您只需要对XML的读访问权限,它就可以正常工作。如果您想要改变XML,或者从头开始创建XML片段/文档,我建议您使用 KissXML

其他提示

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

  

在iPhone上解析XML时有很多选择。 iPhone SDK附带两个不同的库可供选择,并且有几个流行的第三方库可用,如TBXML,TouchXML,KissXML,TinyXML和GDataXML。开发人员如何为他们的项目选择最佳的XML解析器?

     

我最近看了各种各样的选项,最后扩展了Apple的XMLPerformance示例,试用上述每个库来了解它们的工作原理并比较它们的性能。我以为我分享了我迄今为止为其iPhone项目寻找最佳XML库的人所学到的东西。

     

在这个XML教程中,我们将详细比较最流行的iPhone库的功能和性能,解释如何在它们之间进行选择,并提供一个示例项目,展示如何使用每个库读取XML数据。以上图书馆......

还有另一个很好的基于块的XML解析库--LaptureXML( github ) a href =“https://stackoverflow.com/users/185387/zablanc”> ZaBlanc ,它在libxml2之上提供Objective-C API,我绝对建议尝试一下。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top