iOS解析XML文档的SDK

来源:互联网 发布:婴儿翻译器软件下载 编辑:程序博客网 时间:2024/04/29 08:27

XML文档操作有“读”与“写”,读入XML文档并分析的过程成为“解析”。事实上,在使用XML开发的过程中,解析XML文档占很大的比重。

解析XML文档时,目前有两种模式:SAX和DOM。SAX是一种基于事件驱动的解析模式。解析XML文档时,程序从上到下读取XML文档,如果遇到开始标签、结束标签和属性等,就会触发相应的事件。但是这种解析XML文件的方式有一个弊端,那就是只能读取文档,不能写入XML文档,它的优点是解析速度快。iOS重点推荐使用SAX模式解析。

DOM模式将XML文档作为一棵树状结构进行分析,获取节点的内容以及相关的属性,或是新增、删除和修改节点的内容。XML解析器在加载XML文件以后,DOM模式将XML文件的元素视为一个树状结构的节点,一次性读入到内存中。如果文档比较大,解析速度就会变慢。但是在DOM模式中,有一点是SAX无法取代的,那就是DOM能够修改XML文档。

iOS SDK提供了两个XML框架,具体如下所示:

  • NSXML。 它是基于OC语言的SAX解析框架,是iOS SDK 默认的XML解析框架,不支持DOM模式。
  • libxml2。 它(http://xmlsoft.org/)是基于C语言的XML解析器,被苹果整合在iOS SDK中,支持SAX和DOM模式。

此外,在iOS中解析XML时,还有很多第三方框架可以采用,具体如下:

  • TBXML。它是轻量级的DOM模式解析库,不支持XML文档验证和XPath,只能读取XML文档,不能写入XML文档,但是解析XML是最快的。
  • TouchXML。它是基于DOM模式的解析库。与TBXML类似,只能读取XML文档,不能写入XML文档。
  • KissXML。它是基于DOM模式的解析库。基于TouchXML,主要的不同是可以写入XML文档。
  • TinyXML。它是基于C++语言的DOM模式解析库。可以读写XML文档,不支持XPath。
  • GDataXML。它是基于DOM模式的解析库。由Google开发,可以读写XML文档,支持XPath查询。

以上从关东升先生所编著的iOS开发指南第二版读得,个人觉得从解析性能方面来看的话,NSXML和TBXML都是非常优秀的,至于超级大的数据下本人没有真正测试过还无法比较,但是使用NSXML编程时有点麻烦,而TBXML就简单多了。

0 0
原创粉丝点击