比较两个几乎相似的xml文件,然后添加第一个xml文件中缺少的标签

时间:2013-08-16 11:24:44

标签: java xml

我要xml文件说abc.xml& 123.xml几乎相似,我的意思是内容相同,但第二个,即123.xml的内容比前一个更多。我想用Java读取这两个文件,并比较每个标签的abc.xml中存在的内容是否与123.xml中的相同,如果123.xml有一些额外的标签,则将其添加到abc.xml中,如同如果abc.xml没有,请从123.xml中删除标记。

我有两个xml旧版本和新版本的配置文件。在新的标签中可以添加或删除标签,我想使用旧的xml文件的内容生成xml文件,并使用新的xml文件的xml模式。希望我现在有点清楚。

1 个答案:

答案 0 :(得分:0)

这有点模糊。 有很多方法可以做到这一点。 Espacialy当你考虑如何合并时。一方总是压倒另一方吗?这意味着当较新的文件较少时,也可以删除标记。

以下是处理此问题的两种方法:

  1. 在任何版本控制系统中都可以找到像diff和patch这样的现有内容。您可以使用java在控制台上运行diff和patch应用程序。 在这种情况下,你会做一个差异。如果存在差异,请使用create patch获取描述更改的补丁文件,然后应用补丁。

  2. 如果您将在java中执行所有操作,我将不会尝试解析该文件并对其进行序列化处理。它会让你发疯。我会使用像JAX-B这样的编组来转换Pojo中的xml。然后你可以比较pojos并添加或删除目标pojo中缺少的元素,然后将其序列化为xml。

  3. 希望这能为您的进一步调查提供一个起点;)