0

我有一种情况,两种不同的 web 服务方法应该返回完全相同的 XML 文件。

现在,当我收到这两个响应时,我使用 XMLUnit 框架比较这些 XML 文件,该框架显示 xpath 位置 + 各种节点中的差异,如下面的代码:

XMLUnit.setIgnoreWhitespace(true);
DetailedDiff diff = new DetailedDiff(XMLUnit.compareXML(firstXML,secondXML));
List<Difference> allDiifferences= diff.getAllDifferences();

for(Difference difference : allDiifferences){
    System.out.println(difference.getControlNodeDetail().getXpathLocation()+" ("+difference.getControlNodeDetail().getValue()+") /("+difference.getTestNodeDetail().getValue()+")");
}

当我在 SoapUI 中运行测试时,我使用

log.info
log.error

显示存储在 XML 中的差异的方法。

有没有更好的方法来显示这些差异?

4

2 回答 2

3

我已经对此进行了一些研发,据我所知,这就是我可以告诉你的。XMLUnit 提供了最稳定、最轻量级的工具,可以有效地发现两个 xml 文件之间的各种差异。当然,一旦发现这些差异,您可以自由选择如何显示这些差异。

于 2016-04-26T09:21:33.320 回答
1

XMLUnit 非常适合您的用例。或者您可以尝试使用 JAXB 将 XML 转换为 Java 对象的替代方法,然后编写您的自定义比较器。(JAXB 工具可以从您的 DTD 中自动生成类)

于 2016-02-26T08:24:34.010 回答