我在尋找SAX和Pull Parser之間的主要區別。我知道SAX解析器對於處理大型XML文件非常有用,因爲它不存儲XML並僅在一個方向上遍歷。與DOM相比。但是我無法找到SAX和PULL之間的主要區別。 請給我建議任何鏈接XML Pull Parser和SAX Parser之間的區別是什麼
回答
不同之處在於您對XML處理器進行編碼的方式。對於SAX解析器,您使用事件驅動模型,在該模型中提供了一個類,該類具有響應正在讀取XML時發生的事件的方法(Oracle tutorial here)。
對於pull語法分析器,您可以更好地控制XML的位何時讀取,並且可以將解析器句柄傳遞給各個類以處理文檔的不同位(Oracle tutorial here)。
Oracle的技術比較可以找到here。
謝謝。如果您爲此提供任何教程鏈接,它將會更有幫助.. – 2014-10-30 12:38:20
添加到回覆鏈接 – BarrySW19 2014-10-30 12:48:24
當分析器調用您的處理程序,即解析器推到事件處理程序被稱爲分析器,例如推模式。 SAX解析器
SAX解析器 - >處理程序
隨着推機型,你不必在如何以及何時解析遍歷文件控制。
當處理器類調用解析器或當處理類控制分析器時,對下一個事件移到稱爲pull解析器。這裏Handler將XML事件從分析器中「拉出」。例如。 StAX的
處理程序 - > StAX的解析器
瞭解更多信息,請閱讀http://tutorials.jenkov.com/java-xml/sax-vs-stax.html
- 1. Android - Pull Parser
- 2. SAX-Parser拋出UnknownHostException
- 3. SAX Parser問題NullPointer
- 4. 來自url.xml的Android Pull Parser
- 5. 如何從XML Pull Parser獲取Url
- 6. JAXB中UnMarshaller和Parser之間的差異
- 7. 使用Sax Parser在xml中跳過元素的最簡單方法是什麼?
- 8. XML :: Parser入門
- 9. xml parser fileNotFound error
- 10. Microsoft XML Parser 3.0
- 11. 爲什麼Sax Parser沒有找到任何元素?
- 12. DOM XML Parser例子
- 13. 「Parser」的相反詞是什麼?
- 14. SAX解析器和Java中的XML Transformer之間有什麼區別?
- 15. body-parser有什麼用?
- 16. $(())和expr之間的區別是什麼?
- 17. $和$ .fn之間的區別是什麼?
- 18. ++和:haskell之間的區別是什麼?
- 19. $(「」)和$ .find(「」)之間的區別是什麼?
- 20. 「\」和「\。」之間的區別是什麼?
- 21. 「$ | ++」和「$ | = 1」之間的區別是什麼
- 22. $(...)和`...`之間的區別是什麼
- 23. .equals()和==之間的區別是什麼?
- 24. [undefined]和[,]之間的區別是什麼?
- 25. Parser for Servlet中的JSON就像SAX for XML
- 26. Lexer和Parser
- 27. 安裝XML :: Parser需要expat.h
- 28. XML :: Parser拒絕安裝
- 29. 區別:%% a和%variable%變量之間的區別是什麼?
- 30. 對QJson :: Parser :: Parser的未定義引用
SAX * *是一個拉解析器,但還有其他一些,例如DOM。 – EJP 2014-10-30 11:23:59
SAX是一個推式解析器 - StAX是一個拉解析器(請參閱下面的比較鏈接) – BarrySW19 2014-10-30 12:49:27