回答
它取決於你在做什麼,如果你有非常大的文件,那麼你應該使用SAX解析器,因爲它會觸發事件並釋放它們,沒有內容存儲在內存中,並且使用SAX解析器無法訪問元素一個隨機的方式沒有回頭! ,但Dom允許您訪問xml文件的任何部分,因爲它將整個文件/文檔保存在內存中。希望你回答這個問題。
,如果你想知道哪些最快的解析器Xerces將是最快的,你會發現和SAX解析器應該給你更多的性能比DOM
我正在尋找解析XML文檔的最快方法。 不是大文件。 – Basbous 2012-01-17 11:05:48
@Basbous:SAX或XMLPullParser是最快的,但DOM更容易使用。 – 2015-10-16 18:39:39
的SAX XML解析器已經可以進入Android的SDK。
http://developer.android.com/reference/org/xml/sax/XMLReader.html
,所以很容易訪問。
不同類型的解析器可以分類的一個方面是他們是否需要預先將整個XML文檔加載到內存中。基於文檔對象模型(DOM)的解析器這樣做:他們將XML文檔解析爲樹結構,然後可以遍歷內存中的內容來讀取其內容。這允許您以任意順序遍歷文檔,併產生一些有用的API,這些API可以放在DOM之上,例如XPath,這是一種專門用於從樹中提取信息的路徑查詢語言。單獨使用DOM並不是什麼好處,因爲它的API笨重,即使不需要,也總是將所有內容都讀入內存,這是很昂貴的。因此,在大多數情況下,DOM解析器不是在Android上解析XML的最佳選擇。
有一類解析器不需要預先加載文檔。這些解析器是基於流的,這意味着它們在仍從數據源(Web或磁盤)中讀取XML文檔的同時處理XML文檔。這意味着 您沒有像DOM一樣隨機訪問XML樹,因爲沒有維護文檔的內部表示。流解析器可以進一步相互區分。有推送解析器,在流式傳輸文檔時,會在遇到新元素時回撥給您的應用程序。 SAX解析器屬於這個類。然後是拉解析器,它們更像是迭代器或遊標:這裏客戶端必須明確地要求下一個要檢索的元素。
來源:Android實踐。
- 1. SAX解析器vs XMLPull解析器
- 2. XML解析 - ElementTree的VS SAX和DOM
- 3. DOM vs SAX Java
- 4. Dom Vs Sax - 創建Xmls
- 5. 解析色VS解析INT
- 6. 之間的區別:SAX解析器,XPath的,DOM,XMLPullParser
- 7. mod_rewrite vs php解析
- 8. itertools.ifilter VS.過濾器VS.列表解析
- 9. 用SDcard解析XmlPullParser
- 10. 用XmlPullParser解析xml
- 11. 的Android - 解析使用SAX解析器
- 12. android.os.NetworkOnMainThreadException Sax解析
- 13. SAX Java解析
- 14. 解析JSON VS iOS中解析XML
- 15. C#JSON解析vs子串
- 16. LALR vs LL解析器
- 17. CR vs LF perl解析
- 18. 理解VS性能分析
- 19. SRL vs Frame語義解析
- 20. php json_decoding vs xml解析
- 21. ANDROID XMLPULLPARSER解析Inbetween標記
- 22. Xmlpullparser解析嵌套項目
- 23. 解析XML XmlPullParser安卓
- 24. Android XmlPullParser解析asx文件
- 25. SAX解析問題
- 26. Android SAX解析器
- 27. SAX解析異常
- 28. SAX解析'&'字符
- 29. 在SAX解析器
- 30. XML解析與SAX
可能的重複[Android:最佳XML解析庫?](http://stackoverflow.com/questions/3926367/android-best-xml-parsing-library) – 2012-01-17 10:55:26
最好的教程,你有這[這裏]( http://totheriver.com/learn/xml/xmltutorial.html#5.4)。 – 2012-01-17 10:58:01
好教程鏈接@LalitPoptani ......... – Lucifer 2012-01-17 11:00:19