Java Xml 简明教程

Java StAX Parser - Overview

StAX 是一个基于 Java 的 API,用于以与 SAX 解析器相同的方式解析 XML 文档。但与 SAX 解析器不同,StAX 解析器 API 是一个简单的基于迭代器的 API,它将解析控制权授予客户端程序。它以仅限前向的方式读取 XML 文档并将事件存储在迭代器中。

客户端可以根据每个事件的事件类型询问想要访问的事件。

Differences Between SAX and StAX Parsers

以下是 SAX 和 StAX 解析器之间的一些显著差异:

Environment Setup

为了使用 StAX 解析器,您应该在应用程序的类路径中包含 stax.jar

Features of StAX

以下是 StAX API 的特性:

  1. 从上至下读取 XML 文档并识别令牌。

  2. 按其出现的顺序处理令牌。

  3. 向解析器报告令牌的性质。

  4. 根据识别的令牌在事件处理程序中调用回调方法。

When to Use Java StAX Parser?

您应该在以下情况下使用 StAX 解析器:

  1. 希望从上至下线性处理 XML 文档。

  2. 文档没有深度嵌套。

  3. 你的 XML 文档非常大。

  4. 要解决的问题仅涉及 XML 文档的一部分。

  5. 你有流数据(数据在解析器看到后会立即提供)。

Disadvantages of StAX

以下是 SAX 解析器的缺点:

  1. 由于以仅正向的方式处理 XML 文档,因此,我们无法随机访问 XML 文档。

  2. 不支持 XML 架构验证。

  3. 如果您需要跟踪解析器已看到的数据或者解析器已更改项的顺序,则必须编写代码并自行存储数据。

XMLEvent Interface

此界面提供 XML 文档所有组件的基本事件表示形式。事件类型区分各个事件,并相应地检索信息。此界面的某些最常用的方法如下−

XMLEventReader Interface

此界面提供事件迭代器,可用于遍历在解析 XML 文档时发生的事件。某些最常用的方法如下所示−

XMLEventWriter Interface

此界面通过添加事件来写入 XML 文档。某些最常用的方法如下所示−

XMLStreamReader Interface

此界面提供高效地以正向、只读方式读取 XML 事件的方法。其某些方法如下所示−

XMLStreamWriter Interface

此界面提供写入 XML 文档的方法。某些最常用的方法如下所示−