Java,XMLEvent位置字符

时间:2013-02-21 16:57:04

标签: java stax

我正在使用StAX XMLEventReader解析以下String:

final String xmlstr = "<context><book><author>TheName</author></book></context>";

我正在观察event.getLocation().getCharacterOffset()值并得到一些奇怪的行为:在元素声明之后的位置报告START_ELEMENT的索引(例如,上下文元素的索引9),“TheName”的CHARACTERS事件“据报道是在索引32上。为什么?有没有办法纠正?

1 个答案:

答案 0 :(得分:2)

从最新的jdk6到最新的jdk7,我遇到了类似的问题。 com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl中似乎存在一个错误。 getCharacterOffset() returns incorrect value建议使用不同的XML解析器。

(从评论转到回答)

编辑:我对此进行了一些更系统的测试,并且发现jdk6中的情况是错误的,而jdk7中的情况是正确的,也是反之亦然。有趣的是,行号和行列值在两个jdk中都是一致的和正确的。