2013-01-21 65 views
1

在android中有像DOM,SAX和XmlPull解析的方法。我如何決定在特定情況下使用哪種解析?請在特定情況下建議哪一個更優化Android XML解析技術選擇

+0

您還可以使用[XStream](http://xstream.codehaus.org/)來繞過自己解析xml。雖然取決於你在做什麼,但並不總是最好的解決方案。 – atomman

回答

4

我給你提供一些關於SAX和Dom Parser的信息。在Java中

SAX

SAX XML解析器代表的XML解析的簡單API。這是基於事件的XML解析,它逐步解析XML文件,非常適合大型XML文件。 SAX XML解析器在遇到開放標記,元素或屬性時觸發事件,並且解析工作相應地進行。建議使用SAX XML解析器來解析Java中的大型xml文件,因爲它不需要使用Java加載整個XML文件,並且可以以小部分讀取大型XML文件。 Java爲SAX解析器提供了支持,並且您可以使用SAX解析器解析Java中的任何xml文件,我已經介紹了在這裏使用SAX解析器讀取xml文件的示例。在java中使用SAX解析器的一個缺點是使用SAX解析器在Java中讀取XML文件需要比較DOM解析器中的更多代碼。 DOM和SAX XML解析器之間

區別就在這裏是DOM解析器和SAX解析器之間幾乎沒有高水平的差別在Java中:在內存

1)DOM解析器加載整個XML文檔,而SAX只加載XML文件中的一小部分記憶。

2)DOM解析器比SAX更快,因爲它訪問內存中的整個XML文檔。

3)Java中的SAX解析器比DOM解析器更適合大型XML文件,因爲它不需要太多內存。

4)DOM解析器在文檔對象模型上工作,而SAX是基於事件的xml解析器。

這就是所有關於SAX和DOM解析器在Java中的差異,現在取決於你選擇哪個XML解析器。如果XML文件足夠小,建議使用DOM解析器而不是SAX解析器,如果您不知道要處理的xml文件的大小,或者它們很大,則使用SAX解析器。

XML解析也有XMLPullParser,但我沒有更多的想法,因爲我沒有使用它。