0

以下の 2 つの XML を比較しようとしています...類似性テストを行っています。

XML1

<top> <first>true</first> <!--- control node 1 ----> <second> <!--- control node 2 ----> <secondpart1>ooo</secondpart1> </second> <third> <!--- control node 3 ----> <thirdpart1>zzzz</thirdpar1> </third> <third> <!--- control node 4 ----> <thirdpart1>zzzz</thirdpar1> <thirdpart2>zzzz</thirdpar2> </third> </top>

XML2

<top> <second> <!--- test node 1 ----> <secondpart1>ooo</secondpart1> </second> <third> <!--- test node 2 ----> <thirdpart1>zzzz</thirdpar1> </third> <third> <!--- test node 3 ----> <thirdpart1>zzzz</thirdpar1> <thirdpart2>zzzz</thirdpar2> </third> <first>true</first> <!--- test node 4 ----> </top>

このエラーが発生します

[別] 予想される子ノードの数は '1' でしたが、'2' でした。制御ノード 3 とテスト ノード 3 を比較しているようです。そして、要素の名前が「3 番目」と一致するため、比較を行います。この種の状況を回避する方法はありますか?

これは私のコードです

    Diff d = new Diff(xmlResponseTrim, serializedResponseTrim);
    DetailedDiff dd = new DetailedDiff(d);
    dd.overrideDifferenceListener(new IgnoreTextAndAttributeValuesDifferenceListener());
    System.out.println(dd);
    assertTrue(dd.similar());
4

1 に答える 1

0

インターフェイスは、ElementQualifierXMLUnit が相互に比較する要素を決定するものです。特定のケースRecursiveElementNameAndTextQualifierでは機能しますが、一般的な解決策ではありません。より複雑なケースでは、独自の実装でマッチング戦略を実装する必要があります。

于 2015-02-03T18:55:17.673 に答える