我正在寻找一个可以比较和合并 XML 文件的开源版本控制工具。
我必须找到这样一个工具的困难在于,我需要正确合并比较节点而不是行的 XML 文件。
有什么想法吗? 谢谢!
最佳答案
不幸的是,对于这个问题没有万能的解决方案。 XML diffing 对您认为不同的内容非常敏感。在一种情况下,子节点的顺序可能很重要,而在另一种情况下(甚至可能在同一个文件中)它可能无关紧要。
看看XMLUnit .尽管它的目标是单元测试,但它是一个完整的 XML 差异引擎。您必须(在代码中)告诉它如何确定两个节点有资格进行比较,然后如何处理发现的所有潜在差异(即它们在您的应用程序中是否真实)。它检测到“差异事件”的详尽列表,包括
- 属性顺序
- 属性数量
- 子节点顺序
- 子节点数
- 隐式与显式属性值
- 评论差异
- 文档类型差异
- 命名空间差异
还有一大堆。这些中的任何一个对您的应用程序可能重要或不重要,只有您可以决定。值得一看,但需要一些工作才能得到您想要的。
关于xml - 带有 XML 差异和合并的版本控制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3418344/