我有2个XML文件,如下所示:

reference.xml

<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
    <name>Angels &amp; 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 &amp; 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 FilesMerging XML Files
 因此,作为最终解决方案,您可以通过XMLUnit检测到更改,然后最后可以使用XMLMerge进行合并

08-04 08:47