需要帮助来比较xml标记
我需要比较Linux环境中的两个xml文件标记。
我只想比较标签而不是价值。
比如说:
1.xml有
<CSVPrefix> 01 </CSVPrefix>
<CSVPostfix> e </CSVPostfix>
<CSVLandingZone> xyz </CSVLandingZone>
2.xml有
<CSVPostfix>te</CSVPostfix>
<CSVLandinone>/tmp/csv/</CSVLandingZone>
有免费的工具可以做这个吗?
或者甚至一个shell脚本也可以,因为这是我们的设置所支持的。
目前不支持其他语言,因此我无法编写任何py或java代码来进行比较。
最佳答案
步骤1(任何外壳):
$ xmlstarlet sel -t -m "/some-root/*" -v "name()" -n file1.xml
CSVPrefix
CSVPostfix
CSVLandingZone
步骤2(类似于bash的东西):
diff ... <(xmlstarlet sel ...) <(xmlstarlet sel ...)