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

时间:2012-03-23 10:45:28

标签: java xml stax

我正在用STAX解析大文档。我如何记住,克隆或保存XMLStreamReader,或者它的位置,以便我可以稍后返回该位置并继续照常阅读?

修改

我知道theres getLocation()方法,但我如何将Location分配给另一个读者?

1 个答案:

答案 0 :(得分:3)

你做不到。跳到某个位置是不可能的。 StAX和SAX都是前向解析器。这样就有可能实现有效的实施。

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

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