XML 用于无序比较 2 XMLs 的差异工具
XML Diff Tool for unordered comparison of 2 XMLs
我正在寻找一个 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"。
Whosebug 也有类似的question,不过8年前有人问过,解决方案已经失效了。有更新的工具可用吗?
根据 XML 的大小,使用具有可调 偏斜容差的 diff 工具 - 算法将寻找 "similar" 线的距离 - 和亲密度匹配.
"Naive" 使用 Beyond Compare 4 的差异:
接近度匹配:
这在合并具有数千行的 Visual Studio *.sln 文件 (XML) 时非常有效:)
如果这还不够,还有一个 "XML Sort" 转换选项,将排序 XSLT 应用于输入。
常规差异:
"XML Sort"转换:
从哪里申请:
Notepad++ 有比较插件。
我已经使用此处的 xslt 1.0 编写了一个 xml 比较算法。您只需要修改 "file2" 变量以将输入 xml 文件与
进行比较
https://github.com/sflynn1812/xslt-diff-turbo
它输出不匹配的分支和叶节点的结果,速度基于通常应该预期的差异量。更多差异然后更慢。
我正在寻找一个 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"。
Whosebug 也有类似的question,不过8年前有人问过,解决方案已经失效了。有更新的工具可用吗?
根据 XML 的大小,使用具有可调 偏斜容差的 diff 工具 - 算法将寻找 "similar" 线的距离 - 和亲密度匹配.
"Naive" 使用 Beyond Compare 4 的差异:
接近度匹配:
这在合并具有数千行的 Visual Studio *.sln 文件 (XML) 时非常有效:)
如果这还不够,还有一个 "XML Sort" 转换选项,将排序 XSLT 应用于输入。
常规差异:
"XML Sort"转换:
从哪里申请:
Notepad++ 有比较插件。
我已经使用此处的 xslt 1.0 编写了一个 xml 比较算法。您只需要修改 "file2" 变量以将输入 xml 文件与
进行比较https://github.com/sflynn1812/xslt-diff-turbo
它输出不匹配的分支和叶节点的结果,速度基于通常应该预期的差异量。更多差异然后更慢。