Android中幾種xml解析的比較
Andorid中xml解析方法有以下三種:DOM解析、SAX解析、還有Pull解析。今天我們就來比較一下幾種解析方法的優缺點
DOM 解析
優點:
1.XML 樹在記憶體中完整儲存,因此可以直接修改其資料和結構.
2.可以通過該解析器隨時訪問XML 樹中的任何一個節點.
3.DOM 解析器的API 在使用上也相對比較簡單.
缺點:如果XML 文件體積比較大時,將文件讀入記憶體是非常消耗系統資源的.
使用場景:DOM 是用與平臺和語言無關的方式表示XML 文件的官方W3C 標準.DOM 是以層次結構組織的節點的集合.這個層次結構允許開發人員在樹中尋找特定資訊.分析該結構通常需要載入整個文件和構造層次結構,然後才能進行任何工作.DOM 是基於物件層次結構的.
SAX 解析
優點:
SAX 對記憶體的要求比較低,因為它讓開發人員自己來決定所要處理的標籤.特別是當開發人員只需要處理文件中所包含的部分資料時,SAX 這種擴充套件能力得到了更好的體現.
缺點:
用SAX 方式進行XML 解析時,需要順序執行,所以很難訪問到同一文件中的不同資料.此外,在基於該方式的解析編碼過程也相對複雜.
使用場景:
對於含有資料量十分巨大,而又不用對文件的所有資料進行遍歷或者分析的時候,使用該方法十分有效.該方法不用將整個文件讀入記憶體,而只需讀取到程式所需的文件標籤處即可.
pull 解析
android SDK 提供了xmlpull api,xmlpull 和sax 類似,是基於流(stream)操作檔案,然後根據節點事件回撥開發者編寫的處理程式.因為是基於流的處理,因此xmlpull 和sax 都比較節約記憶體資源,不會象dom 那樣要把所有節點以對橡樹的形式展現在記憶體中.xmlpull 比sax 更簡明,而且不需要掃描完整個流.