0

我正在编写一个需要使用castor解组一个巨大的 XML 文件的应用程序。由于这个原因,我需要使用诸如 Stax 之类的流式 XML 解析器来解析 XML 文件。根据 Castor 的文档,castor 默认解析器是 Xerces。我访问了 Xerces 主页,但我找不到 Xerces 是否是流解析器的任何信息。

有谁知道 Xerces 是否是流解析器。谢谢你。

4

2 回答 2

2

常见问题解答中有一些关于如何处理这种情况的建议。引用文档。

如何在流到达时从流中读取数据?

有3个问题你必须处理:

  • Apache 解析器在开始解析之前将整个数据流读入缓冲区;您需要更改此行为,以便他们“即时”分析
  • Apache 解析器在到达文件末尾时终止;使用数据流,除非发送方丢弃套接字,否则您没有文件结尾,因此您需要以其他方式终止
  • Apache 解析器在终止时关闭输入流,这会关闭套接字;您通常不希望这样,因为您需要向数据流源发送 ack,并且无论如何您可能希望在套接字上进行进一步的交换。
于 2013-04-05T13:25:04.407 回答
0

来自http://en.wikipedia.org/wiki/Xerces

Xerces 是 Apache 用于解析、验证、序列化和操作 XML 的软件库的集合。该库实现了许多用于 XML 解析的标准 API,包括 DOM、SAX 和 SAX2

所以它似乎支持流式和非流式 API。有关所有受支持的 API,请参阅http://xerces.apache.org/#xerces2-j 。

于 2013-04-05T13:23:57.313 回答