2

我正在使用 StAX XMLEventReader 解析以下字符串:

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

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

4

1 回答 1

2

我从最新的jdk6到最新的jdk7时遇到了类似的问题。com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl 中似乎有一个错误。getCharacterOffset() 返回不正确的值建议使用不同的 XML 解析器。

(从评论移到答案)

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

于 2013-03-07T15:53:04.993 回答