xml - 只比较 linux 中的 xml 标签

标签 xml linux shell

需要帮助比较xml标签 我需要在 Linux 环境中比较 2 个 xml 文件标签。 我只想比较标签而不是值(value)。 比如说:

1.xml有

<CSVPrefix> 01 </CSVPrefix>
<CSVPostfix> e </CSVPostfix>
<CSVLandingZone> xyz </CSVLandingZone>

2.xml有

 <CSVPostfix>te</CSVPostfix>
 <CSVLandinone>/tmp/csv/</CSVLandingZone>

是否有任何免费工具可用于执行此操作? 甚至一段 shell 脚本都可以,因为这是我们的设置所支持的。

目前不支持其他语言,因此我无法编写任何 py 或 java 代码来比较它。

最佳答案

第 1 步(任何 shell):

$ xmlstarlet sel -t -m "/some-root/*" -v "name()" -n file1.xml
CSVPrefix
CSVPostfix
CSVLandingZone

第 2 步(类似 bash 的东西):

diff ... <(xmlstarlet sel ...) <(xmlstarlet sel ...)

关于xml - 只比较 linux 中的 xml 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901340/

相关文章:

linux - 在 libjvm.so 中错误的 ELF 类 ELFCLASS64

linux - Shellscript If 语句返回错误

java - 此正则表达式需要嵌套括号

linux - 调用函数的局部变量在被调用函数中是可访问的

xml - 验证XPath表达式

java - 从两个不同的类登录 xml 的正确方法是什么?现在我在生成的 xml 中遇到错误

xml - 如何在 XPath 中通过属性命名空间查找元素

xml - XSLT:从多个 XML 文件复制节点,替换或添加节点到另一个 XML 文件,并将整个内容转换为 HTML

linux - hudson : Scheduling a build without a tag and generate a report

linux - 从 bin 文件夹运行 Ubuntu 终端