同等性について2つの要素を比較するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/7374136

  •  28-10-2019
  •  | 
  •  

質問

JDOMを使用してXMLを読み書きするコードのユニットテストを書いています。したがって、JDOMを比較する方法が必要です Element リファレンスで私のコードによって作成されています Element それらが同等のものであることを確認するために(同じ名前、名前空間、属性、さらに子供について同じものを再帰的に)確実にします。

不運にも、 Element.equals 要素が参照的に等しいかどうかのみをテストします。 2つの要素が同一の木を表すかどうかを最大限に判断するにはどうすればよいですか?

役に立ちましたか?

解決

以下は、2つのXML要素が同等であるかどうかを確認する必要があります。

String myElementString = XMLOutputter.outputString(myElement);
String testElementString = XMLOutputter.outputString(testElement);
boolean equals = myElementString.Equals(testElementString);

他のヒント

私は3つの方法しか考えることができません:

  1. コードを手動で作成して、一般にアクセス可能な要素フィールドを使用して比較します。
  2. Java反射を使用してコードを作成して、要素のフィールドを列挙し、それらすべてを比較します。浅いまたは深い比較はあなたのニーズ次第です。
  3. xxxoutputterクラスの1つを使用して、各要素を出力し、出力を比較します。たとえば、各要素からXML文字列を作成します org.jdom.output.XMLOutputter 文字列を比較します。

すべてかなり不快!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top