我正在寻找一种方法来查找 XML 文档中元素的确切位置。我使用 XOM 解析我的文档并以通常的方式处理它。棘手的是,在 XML 文档中,嵌入了一些脚本(只是文本节点),并且在脚本失败(解析、逻辑等)的情况下,我想向用户(编写这些脚本的用户)报告脚本已声明的确切行号。
最理想的方式是这样的:
int scriptLine = someElement.getFirstChildElement("script").getDeclaringLineNumber();
遗憾的是,无论有没有 XOM,我都找不到一种方法来做到这一点。如果有人有想法或已经做过类似的事情 - 我需要一些帮助。 :-)
最佳答案
很久以前我就用 JDOM 做过这个。通过扩展 SAXBuilder 并拦截 startElement() 和 endElement() 回调,可以使用 SAX 定位器使用行号信息更新专用的 Element 实现。代码应该仍然存在......是的在这里:
http://jdom.org/dist/binary/jdom-contrib-1.1.1.zip
在 src 目录中搜索 LineNumberSAXBuilder。
我相信 XOM 有一个可以以相同方式扩展的 NodeFactory。
关于java - 查找 XML 文档中元素的确切位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7501326/