1

我正在寻找一种方法来找到元素在 XML 文档中的确切位置。我用 XOM 解析我的 Document 并以通常的方式处理它。棘手的是,在 XML 文档中,嵌入了一些脚本(只是文本节点),如果脚本失败(解析、逻辑等),我想向用户(编写这些脚本)报告确切的行号脚本已被声明。

最理想的方式是这样的:

int scriptLine = someElement.getFirstChildElement("script").getDeclaringLineNumber();

遗憾的是,无论有没有 XOM,我都找不到这样做的方法。如果有人有想法或已经做过类似的事情 - 我可以使用一些帮助。:-)

4

1 回答 1

1

回想起来,我用 JDOM 做到了这一点。通过扩展 SAXBuilder 并拦截 startElement() 和 endElement() 回调,可以使用 SAX Locator 使用行号信息更新专门的 Element 实现。代码应该仍然存在....是的在这里:

http://jdom.org/dist/binary/jdom-contrib-1.1.1.zip

在 src 目录中搜索 LineNumberSAXBuilder。

我相信 XOM 有一个可以以相同方式扩展的 NodeFactory。

于 2011-09-21T15:39:02.590 回答