我找不到这些解析技术的比较.哪一个最常用?
问候.穆斯塔法
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数据......