1

有没有办法通过 w3c dom api 在 xml 文件中查找给定元素所在的行号?

我的用例是我们有 30,000 多张 kml/xml 格式的地图。我编写了一个单元测试,它遍历硬盘上找到的每个文件(大约 17GB)并测试它是否可以被我们的应用程序解析。当它失败时,我抛出一个异常,其中包含被认为“无效”的元素实例。为了让我们的映射部门(这里没有人知道如何编程)轻松追踪错字,我们希望记录导致异常的元素的行号。

有人可以建议一种方法吗?请注意,我们使用的是 Android 1.6 SDK 中包含的 W3C dom api。

4

3 回答 3

1

我不确定 Android API 是否不同,但普通的 Java 应用程序SAXParseException解析时可能会捕获并查看行号。

于 2010-04-30T21:57:47.127 回答
0

我可能是错的,但只要 XML 结构本身有效,行号就不应该与您的 XML 解析器/阅读器相关。

您可能会尝试以编程方式推断行号,假设每个节点/内容必须位于不同的行上,但这会很棘手。

于 2010-05-01T08:47:42.137 回答
0

看起来您正在验证您的 XML 文件。也就是说,您对文档在语法上是否正确(“格式正确”)不感兴趣,而是对您的应用程序是否在语义上有效。正确的工具是验证 XML 解析器,以及专用的 XML 方案。例如,请参阅本教程关于 Java 中的 XML 验证。验证错误通常包含详细的错误信息,包括有问题的元素的行号。

于 2014-02-26T12:18:57.663 回答