XNode.DeepEquals Method (System.Xml.Linq)

Switch View :
ScriptFree
.NET Framework Class Library
XNode.DeepEquals Method

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

Visual Basic
Public Shared Function DeepEquals ( _
	n1 As XNode, _
	n2 As XNode _
) As Boolean
C#
public static bool DeepEquals(
	XNode n1,
	XNode n2
)
Visual C++
public:
static bool DeepEquals(
	XNode^ n1, 
	XNode^ n2
)
F#
static member DeepEquals : 
        n1:XNode * 
        n2:XNode -> bool 

Parameters

n1
Type: System.Xml.Linq.XNode
The first XNode to compare.
n2
Type: System.Xml.Linq.XNode
The second XNode to compare.

Return Value

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

The following criteria determine whether two nodes are equal:

  • A null node is equal to another null node but unequal to a non-null 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.

C#
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));
Visual Basic
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
Version Information

.NET Framework

Supported in: 4, 3.5

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
See Also

Reference

Other Resources