输出Java XML比较工具

时间:2016-10-21 21:45:59

标签: java xml xmlunit

我使用XMLunit编写了一个用于XML比较的简短Java工具。 为了我的目的,有必要忽略节点顺序和一些特殊的元素名称。 附加的代码工作正常。现在我想得到分歧。不幸的是diff.toString()给了我所有的差异也是“不相同的”,但我想把输出减少到真正不同的,因为“不相同”的输出是由节点的不同顺序引起的。

我的输出如下:

public void vergleichen()
{
    XMLUnit.setIgnoreAttributeOrder(Boolean.TRUE);
    XMLUnit.setIgnoreWhitespace(Boolean.TRUE);
    String f1 = lesen(quelle);
    String f2 = lesen(vergleich);

    try {
        Diff diff = new Diff(f1, f2);
        diff.overrideElementQualifier(new RecursiveElementNameAndTextQualifier());

        diff.overrideDifferenceListener(new IgnoreNamedElementsDifferenceListener("ex1","ex2","ex3"));
        boolean result = diff.similar();

        if (result==true)
        {
            System.out.println("Die Dateien sind gleich");
        }
        else
        {
            System.out.println("Es wurden Unterschiede gefunden");
            System.out.println(diff.toString())
        }
    } catch (SAXException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我的代码是:

{{1}}

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

在调用Diff之前将DetailedDiff包裹在similar内,DetailedDiff将允许您访问所有Difference。然后,您可以根据Difference过滤这些recoverable,并自行调用不可恢复的toString