在iPhone開發中,XML的解析有不少選擇,僅iOS SDK就提供了NSXMLParser和libxml2兩個類庫,還有如TBXML、TouchXML、KissXML、TinyXML和GDataXML等第三方類庫。性能
解析XML一般有兩種方式:DOM和SAXxml
DOM解析XML時,讀入整個XML文檔並構建一個駐留內存的樹結構(稱「節點樹」),以後就經過遍歷樹結構能夠檢索任意XML節點,讀取它的屬性和值。而起一般狀況下,能夠藉助XPath,直接查詢XML節點。 SAX解析XML,是基於事件通知的模式,一邊讀取XML文檔一邊處理,沒必要等整個文檔加載完以後才採起操做,當在讀取解析過程當中遇到須要處理的對象,會發出通知對其進行處理。對象
通常在iOS平臺下,比較經常使用的XML解析類庫有以下幾種:事件
以上幾大類庫,在讀取很小的XML文檔上,性能基本沒有差異,不過從調用的方便性來講,建議使用TouchXML、KissXML或GDataXML。內存
若是是須要讀取和修改XML文檔,建議使用KissXML或GDataXML。開發
若是須要讀取很是大的XML文檔,則建議使用libxml2或TBXML。文檔
不想使用第三方類庫,則就使用iOS自帶的NSXMLParser。效率