我被要求编写一个实用程序来搜索大量 XML 文件中缺少属性的元素。负责部门不能只在 DTD 中强制属性,因为它会破坏数百个文件。他们希望在几天/几周内手动编辑它们。
我正在 Scala 2.8.1 中编写一个小型命令行工具。我将使用“拉式”解析器,这样我就可以保持我的代码功能性编程纯粹并多线程运行它。
我需要 XML 事件的位置。Java 6 ( javax.xml.stream. XMLStreamReader
) 中提供的 API 有一个方法 ( getLocation()
),它返回事件的行号。我可以使用它来编写消息,通知用户在哪里寻找缺失的属性。
我更喜欢在 中使用拉解析器scala.xml.pull.XMLEventReader
,但它似乎不提供位置信息。
我错过了什么吗?它在 Scala API 的其他地方吗?