0

2 つの異なる Web サービス メソッドがまったく同じ XML ファイルを返さなければならない状況があります。

現在、これら 2 つの応答を取得すると、次のコードのように、xpath の場所とさまざまなノードの違いを示す XMLUnit フレームワークを使用してこれらの XML ファイルを比較します。

XMLUnit.setIgnoreWhitespace(true);
DetailedDiff diff = new DetailedDiff(XMLUnit.compareXML(firstXML,secondXML));
List<Difference> allDiifferences= diff.getAllDifferences();

for(Difference difference : allDiifferences){
    System.out.println(difference.getControlNodeDetail().getXpathLocation()+" ("+difference.getControlNodeDetail().getValue()+") /("+difference.getTestNodeDetail().getValue()+")");
}

SoapUI でテストを実行しているときに使用します

log.info
log.error

XML に保存されている違いを表示するメソッド。

これらの違いを示すより良い方法はありますか?

4

2 に答える 2

3

私はこれについていくつかの研究開発を行いましたが、私の知る限りでは、これがあなたに言えることです. XMLUnit は、2 つの xml ファイル間のさまざまな違いを効果的に検出できる、最も安定した軽量のツールを提供します。もちろん、これらの違いが見つかったら、それらをどのように表示するかを自由に選択できます。

于 2016-04-26T09:21:33.320 に答える
1

XMLUnit はユースケースに適しています。または、JAXB を使用して XML を Java オブジェクトに変換し、カスタム コンパレータを作成する別の方法を試すこともできます。(JAXB ツールは、DTD からクラスを自動生成できます)

于 2016-02-26T08:24:34.010 に答える