5

2 つの XML 構造を比較して、構造とデータが同じかどうかを判断する簡単な方法はありますか?

XmlNode を返す関数があり、単体テストを作成しようとしています。正しい XML 結果をファイルに保存します。テスト中に、ファイルを XmlDocument に読み込み、適切な XmlNode を見つけて、関数の結果と比較します。単純な比較は (予想どおり) 機能せず、InnerXml も機能しません。InnerXml からすべての空白を削除して比較するか、独自の比較を作成してツリーをたどることを検討していますが、どちらのオプションもあまり好きではありません。

4

3 に答える 3

8

XNode.DeepEquals . 使用前に注意事項をお読みください。

于 2009-08-21T19:43:50.253 に答える
2

CodeToGlory が答えたように、XNode.DeepEquals() は請求書に適合する可能性があります。MSDN ページの備考セクションを確認してください。

(XDocument ではなく) XmlDocument に行き詰まっている場合、答えは次のとおりです。いいえ、簡単な (既存の) 方法はありません。XmlNode は Equals() をオーバーライドしたり、代替手段を提供したりしません。しかし、それを書くことは不可能ではありません。同じ備考セクションを、ツリー ウォーク アルゴリズムの開始点として使用できます。

属性、コメント、CDATA ノードなどに関して、最初に要件を明確に把握してください。

于 2009-08-21T20:44:30.710 に答える