【问题标题】:Finding the exact location of an Element in a XML-Document在 XML 文档中查找元素的确切位置
【发布时间】:2011-11-22 00:19:30
【问题描述】:

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

最理想的方式是这样的:

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

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

【问题讨论】:

  • 如果有人偶然发现这个问题并且对 XOM 有完全相同的问题,我将 XOM 扩展了一点,以便可以访问 NodeFactories 中的 Locator 对象,该对象可用于提取行号和列号。你可以在这里找到它:github.com/Malax/XOM

标签: java xml xom


【解决方案1】:

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

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

在 src 目录中搜索 LineNumberSAXBuilder。

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

【讨论】:

  • 这是一个很好的提示!我会进一步调查,如果它引导我找到解决方案,我会接受这个答案。无论如何都赞成。 :)
猜你喜欢
  • 2012-01-05
  • 1970-01-01
  • 1970-01-01
  • 2017-12-23
  • 2016-01-28
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 2011-02-05
相关资源
最近更新 更多