0

こんにちは、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.xml3 つのブック ノードがあることを確認できます。

そして、私は合計の違いを印刷しており、以下のように数えています

 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 つだけ追加すると見なすため)、カスタマイズされたメッセージへの出力をカスタマイズする方法はありますか?

4

2 に答える 2