2014-10-30 77 views
4

我在尋找SAX和Pull Parser之間的主要區別。我知道SAX解析器對於處理大型XML文件非常有用,因爲它不存儲XML並僅在一個方向上遍歷。與DOM相比。但是我無法找到SAX和PULL之間的主要區別。 請給我建議任何鏈接XML Pull Parser和SAX Parser之間的區別是什麼

+0

SAX * *是一個拉解析器,但還有其他一些,例如DOM。 – EJP 2014-10-30 11:23:59

+0

SAX是一個推式解析器 - StAX是一個拉解析器(請參閱下面的比較鏈接) – BarrySW19 2014-10-30 12:49:27

回答

2

不同之處在於您對XML處理器進行編碼的方式。對於SAX解析器,您使用事件驅動模型,在該模型中提供了一個類,該類具有響應正在讀取XML時發生的事件的方法(Oracle tutorial here)。

對於pull語法分析器,您可以更好地控制XML的位何時讀取,並且可以將解析器句柄傳遞給各個類以處理文檔的不同位(Oracle tutorial here)。

Oracle的技術比較可以找到here

+0

謝謝。如果您爲此提供任何教程鏈接,它將會更有幫助.. – 2014-10-30 12:38:20

+0

添加到回覆鏈接 – BarrySW19 2014-10-30 12:48:24

1

分析器調用您的處理程序,即解析器推到事件處理程序被稱爲分析器,例如推模式。 SAX解析器

SAX解析器 - >處理程序

隨着推機型,你不必在如何以及何時解析遍歷文件控制。

處理器類調​​用解析器或當處理類控制分析器時,對下一個事件移到稱爲pull解析器。這裏Handler將XML事件從分析器中「拉出」。例如。 StAX的

處理程序 - > StAX的解析器

瞭解更多信息,請閱讀http://tutorials.jenkov.com/java-xml/sax-vs-stax.html

相關問題