XNode.DeepEquals(XNode, XNode) メソッド

定義

すべての子孫ノードの値を含む、2 つのノードの値を比較します。Compares the values of two nodes, including the values of all descendant nodes.

public:
 static bool DeepEquals(System::Xml::Linq::XNode ^ n1, System::Xml::Linq::XNode ^ n2);
public static bool DeepEquals (System.Xml.Linq.XNode n1, System.Xml.Linq.XNode n2);
static member DeepEquals : System.Xml.Linq.XNode * System.Xml.Linq.XNode -> bool
Public Shared Function DeepEquals (n1 As XNode, n2 As XNode) As Boolean

パラメーター

n1
XNode

比較対象となる最初の XNodeThe first XNode to compare.

n2
XNode

比較対象となる 2 番目の XNodeThe second XNode to compare.

戻り値

ノードが等しい場合は true。それ以外の場合は falsetrue if the nodes are equal; otherwise false.

次の例では、このメソッドを使用して、2つの XML ツリーを比較します。The following example uses this method to compare two XML trees.

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")  
);  
Console.WriteLine(XNode.DeepEquals(xmlTree1, xmlTree2));  
Dim xmlTree1 As XElement = _   
        <Root Att1="1" Att2="2">  
            <Child1>1</Child1>  
            <Child2>some content</Child2>  
        </Root>  
  
Dim xmlTree2 As XElement = _   
        <Root Att1="1" Att2="2">  
            <Child1>1</Child1>  
            <Child2>some content</Child2>  
        </Root>  
  
Console.WriteLine(XNode.DeepEquals(xmlTree1, xmlTree2))  

この例を実行すると、次の出力が生成されます。This example produces the following output:

True  

注釈

次の条件は、2つのノードが等しいかどうかを判断します。The following criteria determine whether two nodes are equal:

  • null ノードは別の null ノードと同じですが、非null ノードと等しくありません。A null node is equal to another null node but unequal to a non-null node.

  • 異なる型の2つの XNode オブジェクトは等しくありません。Two XNode objects of different types are never equal.

  • 同じテキストが含まれている場合、2つの XText ノードは等しいことになります。Two XText nodes are equal if they contain the same text.

  • 2つの XElement ノードが等しい場合は、同じタグ名、同じ値の属性セット、および (コメントと処理命令を除いて) 等しいコンテンツノードの2つの等しい長さのシーケンスが含まれています。Two XElement nodes are equal if they have the same tag name, the same set of attributes with the same values, and (ignoring comments and processing instructions) contain two equal length sequences of equal content nodes.

  • ルートノードが等しい場合は、2つの XDocument ノードが等しいことを示します。Two XDocument nodes are equal if their root nodes are equal.

  • 同じコメントテキストが含まれている場合、2つの XComment ノードは等しいことになります。Two XComment nodes are equal if they contain the same comment text.

  • ターゲットとデータが同じである場合、2つの XProcessingInstruction ノードは等しいことになります。Two XProcessingInstruction nodes are equal if they have the same target and data.

  • に同じ名前、パブリック ID、システム ID、および内部サブセットがある場合、2つの XDocumentType ノードは等しいことになります。Two XDocumentType nodes are equal if the have the same name, public ID, system ID, and internal subset.

適用対象

こちらもご覧ください