java - 查找 XML 文档中元素的确切位置

标签 java xml xom

我正在寻找一种方法来查找 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/

相关文章:

java - 如何判断纯文本文件是用什么语言编写的?

c# - 如何在 C# 中验证数字签名的 XML 文档?

xml - Xslt:如何拆分字符串并将类添加到两个单词

java - 在 Java 中使用 namespace 创建 XML 文档

java - 针对不同的依赖项构建相同代码的推荐方法是什么?

java - 使用 X-FACEBOOK-PLATFORM SASL 身份验证的 facebook 聊天身份验证

java - 在Java中使用异常处理强制用户输入字符(字母)而不是字符串

c# - 将 XML 数据放入 Windows 事件日志

java - XPath 表达式不为//元素返回任何内容,但//* 返回一个计数

java - xom xpath 查询的性能与 jaxp xpath 查询与 dom 性能的比较