我尝试使用XMLUnit来区分两个XMLUnit文档的整体结构(没有文本/属性),如下所示:
private static final String XML_HEADER = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
xhtml1 = XML_HEADER + "<b>Text</b>";
xhtml2 = XML_HEADER + "<b>Different Text!</b>";
Diff d = new Diff(xhtml1.trim(), xhtml2.trim());
DetailedDiff dd = new DetailedDiff(d);
dd.overrideElementQualifier(null);
dd.overrideDifferenceListener(new IgnoreTextAndAttributeValuesDifferenceListener());
List<Difference> l = dd.getAllDifferences();
for (Difference difference : l) {
System.out.println(d.toString());
}尽管我覆盖了DetailedDiff上的difference listener,但我仍然得到以下结果:
org.custommonkey.xmlunit.Diff
[not identical] Expected text value 'Text' but was 'Different Text!' - comparing <b ...>Text</b> at /b[1]/text()[1] to <b ...>Different Text!</b> at /b[1]/text()[1]DifferenceListener不适用于getAllDifferences吗?如果是这样的话,有没有其他方法可以只比较标签?
发布于 2015-02-04 03:23:09
IgnoreTextAndAttributeValuesDifferenceListener将差异降级为“相似”而不是“相同”,这就是为什么它们仍然出现在差异列表中的原因。
如果你不能忍受“不完全相同”,你就需要使用你自己的DifferenceListener --而且很可能只复制一行代码就可以复制IgnoreTextAndAttributeValuesDifferenceListener。
https://stackoverflow.com/questions/24643620
复制相似问题