json - 用于无序比较 2 个 XML 的 XML 差异工具

标签 json xml diff

<分区>

我正在寻找一个 diff 工具,它允许我比较 2 个 xml(或 json)文件而忽略其元素的顺序。

例子:

<Node>
    <Child name="Alpha"/>
    <Child name="Beta"/>
    <Child name="Charlie"/>
</Node>

<Node>
    <Child name="Beta"/>
    <Child name="Charlie"/>
    <Child name="Alpha2"/>
</Node>

2 个节点元素应该被认为是相似的,唯一的区别是节点 1 有一个子名称“Alpha”,在另一个节点中是“Alpha2”。

StackOverflow 有一个类似的 question ,但8年前有人问过,解决方案不再有效。有更新的工具可用吗?

最佳答案

根据 XML 的大小,使用具有可调节偏斜容差 的差异工具 - 算法将寻找“相似”行的距离 - 和接近度匹配

使用 Beyond Compare 4 的“朴素”差异:

Naive diff

使用紧密匹配:

With closeness matching

这在合并具有数千行的 Visual Studio *.sln 文件 (XML) 时非常有效:)

如果这还不够,还有一个“XML 排序”转换选项,可将排序 XSLT 应用于输入。

常规差异:

enter image description here

使用“XML 排序”转换:

Example

从哪里应用它:

XML format dialog

关于json - 用于无序比较 2 个 XML 的 XML 差异工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49103439/

相关文章:

linux - 帮助 - 将差异符号 "<"、 "|"或 ">"更改为所需的符号?

git - 如何比较本地 Git 分支与其远程分支

xml - 将选项卡式文本转换为 Perl 数据格式

json - Elasticsearch中的索引编制

xml - 我应该转换什么?和 。在 xml 中?

java - 将 XML 转换为 Java Map<String, Integer>

git - 在 Git 中切换 diff 算法会导致任何问题吗?

javascript - Chrome 扩展程序 .json 文件上传时出错

javascript - 获取API并返回特定数据

php - 使用SimpleXML使用 namespace 解析XML