我有2个XML文件,如下所示:
reference.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>Angels & Demons</name>
<isbn>9971-5-0210-0</isbn>
<category></category>
</book>
comparison.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<isbn>9971-5-0210-0</isbn>
<author>Dan Brown</author>
<category></category>
</book>
如您所见,reference.xml中有一些标记在compare.xml中不存在,反之亦然
我希望将两个文件的输出xml文件集成如下:
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>Angels & Demons</name>
<isbn>9971-5-0210-0</isbn>
<author>Dan Brown</author>
<category></category>
</book>
我尝试使用XML单元(其中是全新的)..它可以很好地检测出差异,但不能用于集成..因此,您能给我什么想法吗,以及是否应该进一步使用XML单元?
最佳答案
我只是谷歌搜索并找到XMLMerge,它的工作原理与您想要的完全相同。 here you can see a tutorial。从给定链接复制的行
EL4J XmlMerge是LGPL许可下的Java库,可以更轻松地合并来自不同XML来源的元素。虽然XmlMerge是EL4J框架的一部分,但是您可以独立于EL4J使用它。从命令行运行XmlMerge实用工具所需的全部是JDK 1.5或更高版本。
您还可以在StackOverflow上找到一些答案,例如
Merge Two XML Files或Merging XML Files
因此,作为最终解决方案,您可以通过XMLUnit检测到更改,然后最后可以使用XMLMerge进行合并