合并XML文档
时间:2020-03-05 18:58:06 来源:igfitidea点击:
我需要"合并"两个XML文档,覆盖重叠的属性和元素。例如,如果我有document1:
<mapping> <key value="assigned"> <a/> </key> <whatever attribute="x"> <k/> <j/> </whatever> </mapping>
和document2:
<mapping> <key value="identity"> <a/> <b/> </key> </mapping>
我想像这样合并两个:
<mapping> <key value="identity"> <a/> <b/> </key> <whatever attribute="x"> <k/> <j/> </whatever> </mapping>
我更喜欢基于Java或者XSLT的解决方案,ant会做的很好,但是如果有简单的方法可以在Rake,Ruby或者Python中做到这一点,请不要害羞:
编辑:实际上,我发现我宁愿使用自动化的工具/脚本,甚至自己编写,因为手动合并大约30个XML文件有点笨拙... :-(
解决方案
回答
不确定是否要以编程方式执行此操作。
编辑:啊,我在编辑之前发布了它。我现在不像个白痴! ;)
如果我们只想将两个文件合并在一起,那么IBM有一个XML Diff and Merge Tool,还有Altova的DiffDog。
回答
如果我们喜欢XSLT,我以前在以下位置使用过一个不错的合并脚本:
奥利弗(Oliver)的XSLT页面
回答
我知道这是一个旧线程,但是Project:Merge可以为我们完成此任务。它可以将两个XML文件合并在一起,并且可以从命令行运行,因此我们可以手动将所有内容一起批处理,运行并仅解决任何冲突(例如,上面示例中'key'的更改属性值)点击几下。 (如果没有冲突,我们可以告诉它以静默方式运行。)
它可以执行XML文件的两向和三向比较以及两向和三向合并。 (在三向操作中,假设要比较/合并的两个文件具有相同的祖先。)