Java:LSParser和DocumentBuilder有什么区别

时间:2016-06-21 22:30:26

标签: java xml parsing dom domdocument

我找不到关于org.w3c.dom.ls.LSParser的任何信息。我知道它是一个界面,但是只有一种方法可以获得具体的物体。

DOMImplementationLS factory = (DOMImplementationLS) myXMLDocument.getImplementation();
LSParser parser = factory.createLSParser(DOMImplementationLS.MODE_ASYNCHRONOUS, null);

LSParser如何与javax.xml.parsers.DocumentBuilder(或SAXParser)

不同

1 个答案:

答案 0 :(得分:4)

首先,SAXParser与javax.xml.parsers.DocumentBuilder和LSParser不同,它通过XML流式传输,而不是构建文档对象模型(DOM)。

这让我们解释了javax.xml.parsers.DocumentBuilder和LSParser。 DOM规范具有定义DOM的结构和行为的级别。有三个级别。 (1,2和3)。 LSParser代表“加载并保存解析器”。此Parser提供对DOM Level 3的支持。它实现了此处定义的行为 - https://www.w3.org/TR/DOM-Level-3-LS/load-save.html。由于LSParser支持DOM Level 3标准,因此它允许事件处理(加载DOM时),保存和过滤。请注意,这是一个规范,因此可以用任何语言实现。

相比之下,javax.xml.parsers.DocumentBuilder是一个基于Java的API(JAXP)。这是一个项目,而不是规范。

LSParser规范受到JAXP和SAX项目的影响。它只是标准化了XML的解析和使用DOM。

参考文献: https://www.amazon.com/Processing-XML-documents-Oracle-JDeveloper/dp/1847196667(参见第7章 - 与本主题相关)。

https://www.w3.org/TR/DOM-Level-3-LS/load-save.html(这是完整的规范)。