我正在使用StAX XMLEventReader解析以下字符串:
final String xmlstr = "<context><book><author>TheName</author></book></context>";
我正在观察
event.getLocation().getCharacterOffset()
值并得到一些奇怪的行为:虽然在元素声明后的位置报告了START_ELEMENT的索引(例如,上下文元素的索引9),但据报告“ TheName”的CHARACTERS事件为在索引32上。为什么?有办法纠正吗? 最佳答案
从最新的jdk6到最新的jdk7时,我遇到了类似的问题。 com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl中似乎存在一个错误。 getCharacterOffset() returns incorrect value建议使用其他XML解析器。
(从评论转为回答)
编辑:我对此进行了一些更系统的测试,并且发现jdk6中错误的情况以及jdk7中正确的情况,反之亦然。有趣的是,行号和行列值在两个jdk上似乎是一致且正确的。