XMLUnit を使用して、次のように 2 つの XML ドキュメントの全体的な構造 (テキスト/属性なし) のみを比較しようとしています。
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 で差分リスナーをオーバーライドしたにもかかわらず、次の結果が得られます。
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 に適用されませんか? もしそうなら、タグだけを比較する別の方法はありますか?