こんにちは、xmlunit を使用して 2 つの xml ファイルの内容を比較しようとして
います。これが私の入力xml です。
参照.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>abc</name>
<isbn>9971-5-0210-0</isbn>
<author>abc</author>
<category></category>
</book>
<book>
<name>def</name>
<isbn>9971-5-0222-0</isbn>
<author>def</author>
</book>
</books>
比較.xml
<?xml version="1.0" encoding="UTF-8"?>
<books>
<book>
<name>abc</name>
<isbn>9971-5-0210-0</isbn>
<author>abc</author>
<category></category>
</book>
<book>
<name>def</name>
<isbn>9971-5-0222-0</isbn>
<author>def</author>
</book>
<book>
<name>ghi</name>
<isbn>9971-5-0222-0</isbn>
<author>test authora</author>
</book>
</books>
ここでは、compare.xml
3 つのブック ノードがあることを確認できます。
そして、私は合計の違いを印刷しており、以下のように数えています
DetailedDiff detDiff = new DetailedDiff(diff);
List differences = detDiff.getAllDifferences();
System.out.println("Total differences:-->"+differences.size());
for (Object object : differences) {
Difference difference = (Difference)object;
System.out.println("***********************");
System.out.println(difference);
System.out.println("***********************");
}
出力:
**Total differences:-->4
予想される子ノードの数は「5」ですが、「7」でした - /books[1] と /books[1] を比較しています
テキスト値 ' ' が予期されていましたが、' ' でした - /books[1]/text()[3] と /books[1]/text()[3] を比較しています
子ノード 'null' の存在が予期されていましたが、'book' でした - null と /books[1]/book[3] を比較しています
子ノード 'null' の存在が予期されていましたが、'#text' でした - null と /books[1]/text()[4] を比較しています
代わりに、変更を 1 つだけと見なし (内部の内部タグを無視して book ノードを 1 つだけ追加すると見なすため)、カスタマイズされたメッセージへの出力をカスタマイズする方法はありますか?