XML Pull Parser和SAX Parser之间的区别是什么

问题描述:

我在寻找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

不同之处在于您对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

分析器调用您的处理程序,即解析器推到事件处理程序被称为分析器,例如推模式。 SAX解析器

SAX解析器 - >处理程序

随着推机型,你不必在如何以及何时解析遍历文件控制。

处理器类调​​用解析器或当处理类控制分析器时,对下一个事件移到称为pull解析器。这里Handler将XML事件从分析器中“拉出”。例如。 StAX的

处理程序 - > StAX的解析器

了解更多信息,请阅读http://tutorials.jenkov.com/java-xml/sax-vs-stax.html