我想知道上述四種類型(SAXPaser,XPath的,DOM,XMLPullParse),我們時應使用每一個之間的差異。之間的區別:SAX解析器,XPath的,DOM,XMLPullParser
回答
SAX解析是實現比DOM,請參閱以下這兩者之間的區別最好的一個:
DOM
節點都是樹結構的形式 內存:它佔用更多的內存,DOM只有在以存儲爲對象編程 容易運行 較慢的小型XML文檔 的情況較受歡迎的實施 易於導航和使用。
SAX事件 的
序列它不使用首選大文檔的內存。由於上面提到的點,在運行時更快。 對象將被創建。 需要編寫代碼創建對象 在SAX向後導航,因爲它如果你有非常大的文件,那麼你應該使用SAX解析器,因爲它會觸發事件和釋放他們按順序處理文檔
所以是不可能的,沒有什麼是存儲在內存中,並且使用SAX解析器,您無法以隨機方式訪問元素,因此無法返回! ,但Dom允許您訪問xml文件的任何部分,因爲它將整個文件/文檔保存在內存中。
看到這個article,你可以通過閱讀摘要得到你想要的。
還檢查此link,以查看不同的XML解析器的性能
請檢查下面的鏈接...
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:
- 解析由節點節點
- 犯規存儲XML在內存
- 我們不能插入或刪除節點
- 由上至下穿越
DOM
- 存儲整個XML文檔到內存中處理
- 之前佔用更多的內存
- 我們可以插入或刪除節點
- 導線在任何方向。
如果我們需要找到一個節點並且不需要插入或刪除,我們可以使用SAX本身,否則DOM提供了更多的內存。
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
- 1. 哪個解析器:SAX,DOM或xpath?
- 2. 使用DOM解析器和SAX解析器進行Android XML解析的區別
- 3. Android:DOM vs SAX vs XMLPullParser解析?
- 4. 使用XPath/DOM/SAX解析XML
- 5. SAX XML解析器或DOM解析器?
- 6. SAX解析器和Java中的XML Transformer之間有什麼區別?
- 7. Java的DOM和SAX XML解析器
- 8. 選區解析器和依賴關係解析器之間的區別
- 9. DOM與XPath - 區別?
- 10. 解析dblp.xml與Java DOM/SAX
- 11. Dom解析器和Xerces解析器之間的差異
- 12. Xerces jar是一個DOM解析器或SAX解析器
- 13. XML解析 - ElementTree的VS SAX和DOM
- 14. XPath中// * /和/ * //之間的區別?
- 15. XPath - 'not'和'!='之間的區別
- 16. LL解析器和AST之間的區別
- 17. 解析問題SAX解析器的Android
- 18. 的Android - 解析使用SAX解析器
- 19. PHP DOM解析器 - 獲取兩個已知XPath之間的所有節點
- 20. 帶SAX解析器的RSS
- 21. SAX解析器 - NumberFormatException的
- 22. Android中的SAX解析器?
- 23. ParseException的:在SAX解析器
- 24. Android SAX解析器
- 25. 在SAX解析器
- 26. 用XPath解析DOM信息
- 27. 命名實體識別和解析之間的區別?
- 28. SAX解析器vs XMLPull解析器
- 29. iOS:結合SAX和DOM解析
- 30. SAX解析器。如何阻止SAX解析器連接到Internet?
看到我的apdated答案!!希望這會幫助你 –