在我的项目中,我有一堆用于用户界面和字符串翻译的 XML 文件,每个文件都有以下结构:
<?xml version="1.0" encoding="UTF-8" ?>
<messages>
<message id="x">
<!-- Text node or arbitrary XHTML markup in here -->
</message>
<message id="y">
<!-- Text node or arbitrary XHTML markup in here -->
</message>
<message id="z">
<!-- Text node or arbitrary XHTML markup in here -->
</message>
...
</messages>
作为我构建过程的一部分,我想将这些文件“缩小”为一个 XML 文件,从而每个<message>
标签及其所有子标签都嵌入在一个<messages>
标签中。
我目前的解决方案是使用 grep 从每个文件中提取 XML 序言、打开消息标记和关闭消息标记,并将结果连接到一个新文件,在连接 XML 序言和打开消息之后,最后连接关闭消息标签。这个解决方案......相当混乱且容易出错。
那么,我如何使用任何命令行 XML 工具来自动化这个过程呢?我可以使用 xmlpatterns 和/或 XSL 转换之类的东西吗?
附带问题:我将如何验证每个<message>
标签都有一个 ID 属性,并且最终文档中的所有 ID 属性值都是唯一的?我知道我可以通过 DTD 完成第一部分,但第二部分是否也在 DTD 领域中,还是我需要做其他事情?