次の方法で共有


XNodeEqualityComparer.Equals(XNode, XNode) メソッド

定義

2 つのノードの値を比較します。

public:
 virtual bool Equals(System::Xml::Linq::XNode ^ x, System::Xml::Linq::XNode ^ y);
public bool Equals (System.Xml.Linq.XNode x, System.Xml.Linq.XNode y);
public bool Equals (System.Xml.Linq.XNode? x, System.Xml.Linq.XNode? y);
override this.Equals : System.Xml.Linq.XNode * System.Xml.Linq.XNode -> bool
Public Function Equals (x As XNode, y As XNode) As Boolean

パラメーター

x
XNode

比較対象となる、最初の XNode

y
XNode

比較対象となる 2 番目の XNode

戻り値

Boolean

ノードが等しいかどうかを示す Boolean

実装

次の例では、このクラスを使用して 2 つのノードを比較します。

XElement xmlTree1 = new XElement("Root",  
    new XAttribute("Att1", 1),  
    new XAttribute("Att2", 2),  
    new XElement("Child1", 1),  
    new XElement("Child2", "some content")  
);  
XElement xmlTree2 = new XElement("Root",  
    new XAttribute("Att1", 1),  
    new XAttribute("Att2", 2),  
    new XElement("Child1", 1),  
    new XElement("Child2", "some content")  
);  
XNodeEqualityComparer equalityComparer = new XNodeEqualityComparer();  
Console.WriteLine(equalityComparer.Equals(xmlTree1, xmlTree2));  
xmlTree2.Add(new XElement("NewChild", "new content"));  
Console.WriteLine(equalityComparer.Equals(xmlTree1, xmlTree2));  

この例を実行すると、次の出力が生成されます。

True  
False  

注釈

次の条件は、2 つのノードが等しいかどうかを判断します。

  • ノードは別nullnullノードと等しいが、非nullノードと等しくない。

  • 異なる型の 2 つの XNode オブジェクトが等しいことはありません。

  • 同じテキストが含まれている場合、2 つの XText ノードは等しくなります。

  • 2 つのノードが同じタグ名を持ち、同じ値を持つ同じ属性セットを持ち、(コメントと処理命令を無視して) ペアの等しいコンテンツ ノードの 2 つの等しい長さのシーケンスを含む場合、2 つの XElement ノードは等しくなります。

  • ルート ノードが等しい場合、2 つの XDocument オブジェクトは等しくなります。

  • 同じコメント テキストが含まれている場合、2 つの XComment ノードは等しくなります。

  • ターゲットとデータが同じである場合、2 つの XProcessingInstruction ノードは等しくなります。

  • 同じ名前、パブリック ID、システム ID、および内部サブセットを持つ場合、2 つの XDocumentType ノードは等しくなります。

適用対象

こちらもご覧ください