在Java中比较XML并获得差异

时间:2018-10-17 12:41:48

标签: java xml dom comparison

我想使用Java比较两个xml文件。我想知道它们之间以及从版本1到版本2添加/删除的内容之间的区别。对于我来说,在哪里添加或删除内容也很重要。

我不是编程专家,所以我的第一个尝试是使用XMLUnit-Legacy,但是解决方案并不是那么好。有了这个库,我得到了不同,但问题是,它无法告诉我精确添加或删除了什么。 它逐行比较两个Strings,但我想要的是,我可以获取xml文件的DOM表示并进行处理。

这是我的代码,供您了解到目前为止我所做的事情:

String content1 = new String(Files.readAllBytes(Paths.get("twoSubTwoClone.xml")));
    String content2 = new String(Files.readAllBytes(Paths.get("twoSubTwoClone2.xml")));
    Diff diff;

    try {
        diff = new Diff(content1, content2);
        DetailedDiff myDiff = new DetailedDiff(diff);
        List allDifferences = myDiff.getAllDifferences();
        for (int i = 0; i < allDifferences.size(); i++) {
            System.out.println(allDifferences.get(i));
        }
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

然后我正在寻找更多的库,并发现了以下内容: https://docs.oracle.com/database/121/ADXDK/adx_j_diff.htm#ADXDK129 ...什么才是真正有希望的。 但是我不知道怎么使用。根本没有例子。

所以我的问题是:

  1. 是否有人已经使用XmlUtils,可以告诉我我必须逐步编程的内容吗? -我知道这听起来很愚蠢,但现在我真的非常渴望使用它。

  2. 是否有更多方法可以实现目标? -其他提供示例的图书馆?

我要感谢高手们。

0 个答案:

没有答案