首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >三向XML合并算法

三向XML合并算法
EN

Stack Overflow用户
提问于 2010-02-08 15:20:11
回答 3查看 4.8K关注 0票数 12

我希望能够对XHTML文档进行3路合并:

  1. 从文件的正本开始
  2. 一个用户编辑原始文档的副本。
  3. 另一个用户编辑原始文档的单独副本。
  4. 需要一个工具来合并(自动和/或可视化)两个用户所做的更改。

注意:

  • 我想在商业软件中包含这个功能:所以我更喜欢免费啤酒和/或开源的东西,而不是商业工具。
  • 我怀疑如果这个工具是XML感知的,那么它要比尝试使用像diff3这样的软件来实现平面文本的3路合并要好得多。
  • 考虑到所有三个输入文档都是有效的XHTML文档,生成的输出文档也应该进行验证。

我发现的工具包括:

  1. "3DM“XML 3路合并和差分工具
  2. Diff和修补工具
  3. XmlDiff (最近被关闭的GotDotNet站点,但它可能是作为XML记事本的一个组成部分而存在)

上面的第一个(即"3DM")明确表示它实现了3路合并。

我不知道另外两个:" diff“后面接”修补程序“是否等同于3路合并,或者”修补程序“是否只能将diff重新应用到原始文件(而不是文件的第三次修改副本)。

为此目的,您能推荐一些软件(来自上面的列表或其他地方)和/或对合并算法的描述吗?

编辑:XML的匹配、区分和合并是2008年的另一篇文章,其中包括对各种算法和对各种实现的引用的简要概述。

编辑2:作者确认和修补工具只能修补原始文件,不能实现3路合并。

EN

回答 3

Stack Overflow用户

发布于 2010-02-08 15:28:27

我可以添加到您的集合DeltaXML -他们不主张diff3,但值得考虑。

票数 4
EN

Stack Overflow用户

发布于 2010-08-31 10:07:07

恐怕我没有免费的解决方案,但是项目:合并是一种廉价的XML比较和合并工具,可以通过命令行控制。它可能会直接插入到应用程序中。

票数 4
EN

Stack Overflow用户

发布于 2012-08-21 09:36:40

一种免费的选择就是

代码语言:javascript
复制
$ xmlstarlet fo before.xml > before.xml
$ xmlstarlet fo after.xml > after.xml

然后再做

代码语言:javascript
复制
$ diff before.xml after.xml

若要创建XML差异的修补程序,请执行以下操作。这是免费的,简单的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2222548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档