Java、XML事件位置字符

标签 java stax

我正在使用 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 中的行号和行列值似乎是一致且正确的。

关于Java、XML事件位置字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007961/

相关文章:

java - 如何使用 StaX 获取特定 XML 标记的值

java - GAE/J 数据存储 : how to build an IN query with JDO

java - 如何调整图标大小?

java - 如何同时掷 2 个骰子并记录其总和

java - 如何获取StAX XMLEvent对象的全文?

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

java - 使用 stax 和 dom 读取一个大的 XML 文件

java - 我们如何自定义 STAX 或 SAX 的 XML 解析错误?

java - 如何将java程序交付给客户?

java - JDO 与 hibernate 集成