xml - 带有 XML 差异和合并的版本控制

标签 xml merge controls diff version

我正在寻找一个可以比较和合并 XML 文件的开源版本控制工具。

我必须找到这样一个工具的困难在于,我需要正确合并比较节点而不是行的 XML 文件。

有什么想法吗? 谢谢!

最佳答案

不幸的是,对于这个问题没有万能的解决方案。 XML diffing 对您认为不同的内容非常敏感。在一种情况下,子节点的顺序可能很重要,而在另一种情况下(甚至可能在同一个文件中)它可能无关紧要。

看看XMLUnit .尽管它的目标是单元测试,但它是一个完整的 XML 差异引擎。您必须(在代码中)告诉它如何确定两个节点有资格进行比较,然后如何处理发现的所有潜在差异(即它们在您的应用程序中是否真实)。它检测到“差异事件”的详尽列表,包括

  • 属性顺序
  • 属性数量
  • 子节点顺序
  • 子节点数
  • 隐式与显式属性值
  • 评论差异
  • 文档类型差异
  • 命名空间差异

还有一大堆。这些中的任何一个对您的应用程序可能重要或不重要,只有您可以决定。值得一看,但需要一些工作才能得到您想要的。

关于xml - 带有 XML 差异和合并的版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3418344/

相关文章:

c# - 创建符合 XSD 架构的 XML 文档的最佳方法是什么?

c# - WinForms - 在控制之前捕获键

c# - 帮助找到最深的拼写检查子控件

c# - 依赖属性更改时未引发 WPF 事件

c# - 使用 XSD/代码生成的 XML 反序列化 - 解析错误

java - JSONObject.toString() 正在创建 OutOfMemoryError

C# XML 序列化排除写类名

git - 如何在不 pull 的情况下推送新分支

c# - Linq - 创建一个设置长度的列表,默认值为空

git - 为什么我的 Git merge 会发生冲突?