Java:LSParser 和 DocumentBuilder 有什么区别

标签 java xml parsing dom domdocument

我找不到关于 org.w3c.dom.ls.LSParser 的任何信息。我知道它是一个接口(interface),但只有一种方法可以获取具体对象 afaik。

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

LSParser 与 javax.xml.parsers.DocumentBuilder(或 SAXParser)有何不同

最佳答案

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

剩下的就是解释 javax.xml.parsers.DocumentBuilder 和 LSParser。 DOM 规范具有定义 DOM 结构和行为的级别。分为三个级别。 (1、2 和 3)。 LSParser 代表“加载和保存解析器”。此解析器提供对 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 (这是完整的规范)。

关于Java:LSParser 和 DocumentBuilder 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37955637/

相关文章:

java - PayPal 金额只能增加 20%

java - 如何在Java中正确使用MongoDB多线程?

java - 安卓内联类

java - 使用 JDBC 和 JSP 的 UPSERT MYSQL 命令

xml - XQuery 连接结果

xml - 返回第 n 层的 XML 结构

android - strings.xml 中的 "is translated here but not found in default locale"错误,可翻译 = "false"

Python文本处理/查找数据

javascript - 仅获取维基百科摘要

parsing - 上传 CSV 文件并将数据解析到 Grails 中的数组?