【发布时间】:2022-01-01 23:23:05
【问题描述】:
我对 shell 脚本很陌生,需要制作一个脚本来检查不同 xml 文件和不同 xml 层次结构中的 xml 标记,并检查不同文件中的版本是否匹配。
但一个额外的步骤是我只需要这个标签中的版本号,一些标签可能有更多信息(参见示例 - 快照,发布)。
我对此很陌生,我已经使用这个 sed 命令来获取版本,但不能比这更进一步......
成功和失败示例:
Hello, I am quite new to shell scripting and need to make a script that checks xml tag within diferent xml files and diferent xml hierarchy and checks if version matches in different files.
但一个额外的步骤是我只需要这个标签中的版本号,一些标签可能有更多信息(参见示例 - 快照,发布)。
我对此很陌生,我已经使用这个 sed 命令来获取版本,但不能比这更进一步......
成功和失败示例:
示例 1 - 成功
File1.xml
<project>
<version>1.2.4-SNAPSHOT</version>
</project>
File2.xml
<project>
<parent>
<version>1.2.4</version>
</parent>
</project>
File3.xml
<project>
<parent>
<child>
<version>1.2.4-RELEASE</version>
</parent>
</child>
</parent>
</project>
OUTPUT - Versions Match - 1.0.4
示例 2 - 错误
File1.xml
<project>
<version>1.2.4-SNAPSHOT</version>
</project>
File2.xml
<project>
<parent>
<version>2.2.2</version>
</parent>
</project>
File3.xml
<project>
<parent>
<child>
<version>1.2.2-RELEASE</version>
</parent>
</child>
</parent>
</project>
OUTPUT - Version Mismatch - Check Version
【问题讨论】:
-
在每个 xml 文件中,是否只有一个
<project>元素和一个<version>子元素? -
嗨@JackFleeting 感谢您的回复。我要比较的版本包含在每个 xml 的结构中,但是是的,每个只有 1 个元素。
-
@JackFleeting XML 结构对于每种类型的文件(1、2、3)总是相同的,我不需要它是动态的。
标签: xml shell validation