我有两个XML文件。它们是相似的,但有两个节点,其中任何一个文件只有一个。我想在一个单独的文档中合并两组这样的文档,其中首先是A面的节点,然后是B面的节点。
我不是diff工具的有经验的用户,并且下载了KDiff3来启动某个地方.. 任何人都可以把我放在正确的道路上吗?
- 编辑 -
Finding diff tools是我自己可以管理的事情
但是如何使这些工具中的一个(无论哪一个)通过首先从file1然后从file2放入部分来自动进行合并是我正在寻找的。
这是一个相当广泛的文件,所以我最好不要在mergin过程中有任何干预。
答案 0 :(得分:1)
DiffMerge。它是免费的,适用于Windows,Mac OS X和Unix。
答案 1 :(得分:1)
这听起来更像是一个软件来创建,然后找到该软件。
如果您自己滚动,则可以添加两个XML都有效的附加检查。
答案 2 :(得分:1)
如果xml“节点”以任何方式相似,那么使用标准diff工具可能会遇到很大问题。例如:
文件1:
1 <node id="1" />
2 <node id="2a">
3 <content item="1"/>
4 <content item="2a"/>
5 </node>
6 <node id="3" />
file2的:
1 <node id="1" />
2 <node id="2b">
3 <content item="1"/>
4 <content item="2b"/>
5 </node>
6 <node id="3" />
标准差异工具将突出显示第2行和第4行需要合并,但即使您自动添加来自file2的行,您最终也会得到一个无效的xml文件:
1 <node id="1" />
2 <node id="2a">
2 <node id="2b">
3 <content item="1"/>
4 <content item="2a"/>
4 <content item="2b"/>
5 </node>
6 <node id="3" />
您确实需要一个支持xml的差异/合并工具。我找到了一个名为XmlMerge的描述,以及一个示例,表明它完全符合您的要求。这是EL4J的一部分。
有一个名为XUpdate的休眠工作,周围有相当数量的工具(用于生成XUpdate差异和应用它们)。 还有一些.net classes使用不同的基础。你需要做一些脚本来使用我认为的这些系统中的任何一个。
答案 3 :(得分:0)
KDiff3可以将两个输入版本都放到输出文件中。有标记为A和B的按钮。您可以单击其中一个以将一个版本放入合并结果。或者您可以单击它们,并且将包含两个版本。单击这些按钮的顺序将影响插入行的顺序。
它还可以合并整个目录。
唯一的问题似乎是自动化。
KDiff3的键盘shorcuts可以以非常丰富的方式配置,所以我会尝试在这里查看,然后可能会使用一些键盘脚本应用程序。
可能还有其他一些更简单的方法: - )