XML Parser 是做网络应用开发常用到的,iPhone SDK 自带了两个 libraries,除此之外还有很多第三方的 XML Parser libraries,包括 TBXML,TouchXML,KissXML,TinyXML,and GdataxML,这里就有一个问题,做开发的时候该选择哪一个适合自己的?CocoaChina 会员 “jjyycwy” 为我们做了具体介绍:
- SAX,Simple API for XML,属于 event driven,即所谓的事件驱动。当满足一定的条件时,相应的事件就会被驱动,常用的事件类似于ErrorOccur,DataRecieved。
- DOM,Document Object Model,简单来讲,就是要把文档完全下载完以后,然后对其里面的内容、objects等进行操作。
- NSXMLParser,SAX 型,这是 iPhone SDK 自带的,用 Objective C 写的,直接用,但是并不是最简单的。
- libxml2,开源的,也是 SDK 自带的,用的是 C 语言,同时支持 SAX 和 DOM。它有一个非常好的特性,parse 和 read 同时进行,也就是说你不用等到整个文档下载完以后才读,比如你需要 parse 一个非常大的文件,你不希望用户等你 parse 完才看到内容,你可以这 parse 的同时把内容呈现出来。
- TBXML,特点是小,DOM 型,可以在低内存损耗的条件下快速提取内容,缺点也是太简单,不支持 xPath,并且只能读,不能写,也就是说,你读完了 xml,想修改里面的内容再发送,对不起,爷没这功能。
- TouchXML,特点几乎与上面那位一样,简单,只读不写,但是支持 xPath。
- KissXML,实际上是基于 TouchXML 的,只是增加了写的功能,可以编辑。
- TinyXML,是一个小的 C 语言 DOM 型,不支持 xPath。
- GdataxML,Google 开发的,基于 Objective-C 的 parser。