xml解析性能的比较2011-06-02 11:16
XML Parser,是做网络应用开发常用到的,iPhone SDK 自带了两个libraries,除此之外还有很多第三方的XML Parser libraries,包括TBXML, TouchXML, KissXML, TinyXML, and GDataXML,这里就有一个问题,做开发的时候该选择哪一个适合自己的?这里我做一个简单的介绍,仅是抛砖引玉,不足之处望指正。
首先要清楚两个概念,SAX和DOM。
SAX,Simple API for XML,属于event driven,即所谓的事件驱动,当满足一定的条件时,相应的事件就会被驱动,常用的事件类似于ErrorOccur,DataRecieved。
DOM,Document Object Model,简单来讲,就是要把文档完全下载完以后,然后对其里面的内容、objects等进行操作。
想了解更多,可以搜索百度百科。
弄清两个概念,再来看都有哪些可以用的Libraries。
NSXMLParser,SAX型,这是iPhone SDK自带的,用Objective C写的,直接用,但是并不是最简单的。
libxml2,开源的,也是SDK自带的,用的是C语言,同时支持SAX和DOM。它有一个非常好的特性,parse和read同时进行,也就是说你不用等到整个文档下载完以后才读,比如你需要parse一个非常大的文件,你不希望用户等你parse完才看到内容,你可以这parse的同时把内容呈现出来。
TBXML,特点是小,DOM型,可以在低内存损耗的条件下快速提取内容,缺点也是太简单,不支持xPath,并且只能读,不能写,也就是说,你读完了xml,想修改里面的内容再发送,对不起,爷没这功能