使用XML diff和merge进行版本控制

myb*_*dur 9 xml diff merge controls version

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

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

任何的想法?谢谢!

Jim*_*son 6

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

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

  • 属性顺序
  • 属性数量
  • 子节点顺序
  • 子节点数
  • 隐式vs显式属性值
  • 评论差异
  • doctype差异
  • 名称空间差异

还有更多.这些中的任何一个对您的应用程序都很重要或不重要,只有您可以自行决定.这值得一看,但需要一些工作才能得到你想要的东西.


spe*_*hak 3

我过去使用过的东西是diffxml。您也许可以将其用作 svn 或 git 等 VCS 的 diff 命令。