我正在寻找一种方法来查找XML文档中元素的确切位置。我用XOM解析我的文档并以通常的方式处理它。棘手的是,在XML文档中,一些脚本是嵌入的(只是文本节点),如果脚本失败(解析,逻辑,等等),我想报告用户(编写这些脚本)的确切行号该脚本已被声明。
最理想的方式是:
int scriptLine = someElement.getFirstChildElement("script").getDeclaringLineNumber();
可悲的是,无论有没有XOM,我找不到办法做到这一点。如果有人有想法或已经做过这样的事情 - 我可以使用一些帮助。 : - )
答案 0 :(得分:1)
回来我用JDOM做了这个。通过扩展SAXBuilder并拦截startElement()和endElement()回调,可以使用SAX定位器使用行号信息更新专用元素实现。代码应该仍然存在......是的,在这里:
http://jdom.org/dist/binary/jdom-contrib-1.1.1.zip
在src目录中搜索LineNumberSAXBuilder。
我相信XOM有一个可以以相同方式扩展的NodeFactory。