XNode.DeepEquals Method

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Compares the values of two nodes, including the values of all descendant nodes.

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

Syntax

'Declaration
Public Shared Function DeepEquals ( _
    n1 As XNode, _
    n2 As XNode _
) As Boolean
public static bool DeepEquals(
    XNode n1,
    XNode n2
)

Parameters

Return Value

Type: System.Boolean
true if the nodes are equal; otherwise false.

Remarks

The following criteria determine whether two nodes are equal:

  • A nulla null reference (Nothing in Visual Basic) node is equal to another nulla null reference (Nothing in Visual Basic) node but unequal to a non-nulla null reference (Nothing in Visual Basic) node.

  • Two XNode objects of different types are never equal.

  • Two XText nodes are equal if they contain the same text.

  • 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.

  • Two XDocument nodes are equal if their root nodes are equal.

  • Two XComment nodes are equal if they contain the same comment text.

  • Two XProcessingInstruction nodes are equal if they have the same target and data.

  • Two XDocumentType nodes are equal if the have the same name, public ID, system ID, and internal subset.

Examples

The following example uses this method to compare two XML trees.

Dim output As New StringBuilder
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>

output.Append(XNode.DeepEquals(xmlTree1, xmlTree2))
output.Append(Environment.NewLine)

OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
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")
);
output.Append(XNode.DeepEquals(xmlTree1, xmlTree2) + Environment.NewLine);

OutputTextBlock.Text = output.ToString();

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.