要素の順序を無視して2つのXML文字列を比較する 質問する

要素の順序を無視して2つのXML文字列を比較する 質問する

2つのXML文字列があるとします

<test>
  <elem>a</elem>
  <elem>b</elem>
</test>

<test>
  <elem>b</elem>
  <elem>a</elem>
</test>

これら 2 つの文字列を比較し、要素の順序を無視するテストを記述するにはどうすればよいでしょうか?

テストはできるだけ短くし、10 行の XML 解析などを行う余地はないようにしたいです。単純なアサーションまたはそれに類似するものを探しています。

これを持っています(動作しません)

   Diff diff = XMLUnit.compareXML(expectedString, actualString);   
   XMLAssert.assertXMLEqual("meh", diff, true);

ベストアンサー1

xmlunit 2.0(これを探していました)では、次のようにして実行できます。デフォルトノードマッチャー

Diff diff = Diffbuilder.compare(Input.fromFile(control))
   .withTest(Input.fromFile(test))
   .withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byNameAndText))
   .build()

これが他の人のグーグル検索に役立つことを願っています...

おすすめ記事