java - 如何使用 STAX 记住 XMLStreamReader 在 xml 中的位置

标签 java xml stax

我正在使用 STAX 解析大文档。我如何记住、克隆或保存 XMLStreamReader 或其位置,以便稍后可以返回到该位置并像往常一样继续阅读?

编辑

我知道有 getLocation() 方法,但如何将位置分配给另一个阅读器?

最佳答案

你不能那样做。无法跳转到特定位置。 StAX 和 SAX 都是仅前向解析器。这为高效实现提供了可能性。

通过深度克隆,这在理论上是可能的,如果您的实现支持它(不太可能)。听起来更需要 Dom 或 TrAX 解析器。

如果由于文档大小而无法做到这一点,那么您必须修改解析,以便不需要返回到之前的点。或者您可以记住代码中的位置(例如基于元素计数)并在实际处理之前将新的解析器滚动到该点。

关于java - 如何使用 STAX 记住 XMLStreamReader 在 xml 中的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9837861/

相关文章:

java - Junit testing in play with java.lang.OutOfMemoryError 已被捕获,Java 堆空间

.net - 从 SQL XML 列中的元素获取属性名称

java - 停止 stax 解析器执行

java - 在 Java 中存储一个 String 变量以备后用

java - Groovy/Grails - Jollyday CalenderUtil - 无方法签名

java - 正则表达式 (java) 帮助

c++ - 访问我有 xml 描述的存储结构

java - 如何在values-v21中使用语言更改strings.xml?

java - StAX 事件过滤器 StackOverflowError

android - 如何在 Android 上满足 Apache POI 的依赖性?