這兩天在Google神殿裡爬了不少的文章,大概了解在iOS下如何做XML的parsing,也找到了一篇很棒的分析文章,在這跟大家分享!
網路上找到的這篇文章是「How To Choose The Best XML Parser for Your iPhone Project」而且還是今年三月算是蠻新的文章,作者比較了現在市面上比較受歡迎的7個 XML parser,還寫了一個App來測試各個XML parser的速度和記憶體使用率。測試程式XCode專案可在此 下載
其實iOS SDK裡,除了我最早介紹和目前所使用的libxml2之外,Apple還有另一個較高階且Objective-C化的NSXMLParser!其它幾個顯部份是based NSXMLParser衍生出來的更精簡或是更多功能的Parser。
作者的測試程式跑出來的數據圖如下
速度比較:
尖峰記憶體使用率比較
從第一張圖你可以發現,XCode內建的NSXMLParser是最慢的,而且慢很多 orz...
而大家比較熟知的TouchXML吃記體是最多的,但相對的,它所提供的功能比較容易使用。
作者最後給個判斷的方式,教你如何挑選最適合你的XML Library
只需要讀取小量的XML
請選擇TouckXML, KissXML或GDataXML其中一種來用
需要同時讀取和寫入,但小量的XML
請選擇KissXML或GDataXML
需要讀取非常大的XML
libxml2(SAX, DOM)或是TBXML
那另外兩個NSXMLParse和TinyXML呢?
如果你只有小量XML的讀取需求,且不喜歡另外安裝上述第三方的XML parser的話,那就使用NSXMLParser吧。
至於TinyXML,中量的XML可以選使用它,但你必需對C的語法比較熟悉,使用上才會容易些。
所以你知道該如何選擇了嗎?