2012-05-26 55 views

回答

9

SAX解析是實現比DOM,請參閱以下這兩者之間的區別最好的一個:

DOM

節點都是樹結構的形式 內存:它佔用更多的內存,DOM只有在以存儲爲對象編程 容易運行 較慢的小型XML文檔 的情況較受歡迎的實施 易於導航和使用。

SAX事件 的

序列它不使用首選大文檔的內存。由於上面提到的點,在運行時更快。 對象將被創建。 需要編寫代碼創建對象 在SAX向後導航,因爲它如果你有非常大的文件,那麼你應該使用SAX解析器,因爲它會觸發事件和釋放他們按順序處理文檔

所以是不可能的,沒有什麼是存儲在內存中,並且使用SAX解析器,您無法以隨機方式訪問元素,因此無法返回! ,但Dom允許您訪問xml文件的任何部分,因爲它將整個文件/文檔保存在內存中。

看到這個article,你可以通過閱讀摘要得到你想要的。

還檢查此link,以查看不同的XML解析器的性能

enter image description here

3

請檢查下面的鏈接...

http://steveliles.github.com/comparing_methods_of_xml_parsing_in_android.html

http://xjaphx.wordpress.com/2011/11/01/android-xml-adventure-compare-xml-parsers/

http://www.ibm.com/developerworks/opensource/library/x-android/index.html

http://www.developer.com/ws/android/development-tools/Android-XML-Parser-Performance-3824221-2.htm

http://www.geekinterview.com/question_details/12797

(按照上文第)

SAX和DOM來解析XML文檔。兩者都有優點和缺點,並且可以根據不同的情況我們的編程中使用

SAX:

  1. 解析由節點節點
  2. 犯規存儲XML在內存
  3. 我們不能插入或刪除節點
  4. 由上至下穿越

DOM

  1. 存儲整個XML文檔到內存中處理
  2. 之前佔用更多的內存
  3. 我們可以插入或刪除節點
  4. 導線在任何方向。

如果我們需要找到一個節點並且不需要插入或刪除,我們可以使用SAX本身,否則DOM提供了更多的內存。

2

DOM

節點處於樹結構的形式 內存:它佔用更多的存儲器,DOM僅優先停留在小XML文檔的情況下...將整個XML文檔存儲在內存中以供處理 在運行時較慢 作爲對象存儲 以編程方式容易實現nt 易於導航和使用,可以在任何方向上穿行。 我們可以插入或刪除,更改節點。

SAX:當你想訪問XML(不改變XML)事件 它不會在內存中的XML處理 更快之前使用首選大documents.Doesn't存儲中的任何內存

順序使用在運行時,因爲上面提到的一點。 對象將被創建。 需要編寫代碼創建對象 在SAX向後導航是不可能的,因爲它按順序處理文件,從上到下穿越 我們不能插入或刪除節點

XPATH:XPath是有用的,當你只需要從XML文檔幾個值的,你知道在哪裏可以找到他們(你知道data./root/item/challange/text的路徑)

XMLPullParser: 速度快,可以與DOM

更少的內存

來源: http://www.time2ask.com/ http://www.time2ask.com/Android/The-difference-among-SAX-ParserXPathDOMXMLPullParser/_2361836