2011-09-21 48 views
1

我正在寻找一种方法来一个XML的文档中找到一个元素的准确位置的元素的确切位置。我用XOM解析我的文档并按通常的方式处理它。棘手的是,在XML文档中,嵌入了一些脚本(只是文本节点),并且在脚本失败的情况下(解析,逻辑等),我想报告用户(写入这些脚本)的确切行号该剧本已被宣布。找到一个XML的文档

最理想的方法是这样的:

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

可悲的是我无法找到一个方法来做到这一点,有或没有XOM。如果有人有想法或已经做过这样的事情 - 我可以使用一些帮助。 :-)

+0

如果任何人绊倒在这个问题,并具有XOM完全相同的问题,我扩展XOM一点能够访问定位器对象中,可用于提取的行和列号NodeFactories。你可以在这里找到它:https://github.com/Malax/XOM – Malax

回答

1

回来的路上我这样做是用JDOM。通过扩展SAXBuilder并拦截startElement()和endElement()回调,可以使用SAX定位器使用行号信息更新专用元素实现。该代码仍然应该围绕....是这里:

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

src目录搜索LineNumberSAXBuilder。

我相信XOM具有可以以相同的方式进行延伸的NodeFactory。

+0

这是一个很好的提示!我会进一步调查,并会接受这个答案,如果它导致我的解决方案。无论如何Upvoted。 :) – Malax