需要帮助来比较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 ...)

10-08 20:25