Java XML 解析器



Java 有各种支持对象类型和事件类型标准的 XML 解析器。我们可以使用这些 API 读取、创建、查询和修改 XML 文档。API 提供表示 XML 文档的接口,以及用于检索和修改 XML 文档中元素和属性的方法。

XML 解析器

XML 解析器是软件库或包,它们帮助客户端应用程序通过接口与 XML 文档交互。它们用于检查 XML 语法并根据 DTD 或 XML 模式对其进行验证。解析器可以是基于文档的或基于事件的。

XML 解析器的类型

以下是两种主要的 XML 解析器类型:

  • DOM (文档对象模型)
  • SAX (用于 XML 的简单 API)

DOM (文档对象模型)

DOM 由 W3C(万维网联盟)提出。它是一个基于树的 API,并将整个 XML 文档创建为主内存中的解析树。因此,它消耗更多内存。DOM API 提供了访问、添加和修改文档的接口,这些接口与编程语言无关。DOM 适用于小型文档,因为它消耗更多内存。我们可以使用 DOM API 读取和创建文档。

DOM parser image

SAX (用于 XML 的简单 API)

SAX 是一个基于事件的 API。它不会加载整个文档。相反,它加载 XML 文件的小部分。SAX 是一个只读 API,我们不能使用 SAX 创建 XML 文档。它用于处理大型 XML 文档,因为它消耗更少的内存。

SAX parser image

Java XML 解析器

JAXP(**J**ava **A**PI for **X**ML **P**rocessing)API 提供了在 Java 应用程序中处理 XML 文档的标准接口。它具有支持 DOM 和 SAX 标准的接口。

下表描述了各种 XML 解析器及其在 Java 中的相对类或接口。

解析器 描述 类/接口
DOM 解析器 DOM 解析器将 XML 文件表示为主内存中的树结构。DOM 提供了访问和修改 XML 文档的接口。 DocumentBuilder
SAX 解析器 SAX 解析器基于事件解析 XML 文档,仅用于读取。整个文件不会加载到主内存中。 SaxParser
JDOM 解析器 JDOM 解析器是一个开源 API,支持 DOM、SAX、XSLT 和 XPath。它与 DOM 和 SAX 集成。 DOMBuilder、SAXBuilder、StAXEventBuilder、StAXStreamBuilder、StAXStreamWriter
StAX 解析器 StAX 解析器是一个基于 JAVA 的流式 API,它是一个拉取解析模型,用于读取和写入 XML 文档。 XMLEventReader、XMLEventWriter
DOM4J 解析器 DOM4J 解析器是一个基于 Java 的库,它使用 Java 集合框架来有效地访问和修改 XML 文档。 DOMReader、DOMWriter、SAXReader、SAXWriter
XPath 解析器 XPath 解析器基于表达式解析 XML 文档以访问和修改节点。 XPath
广告