XNodeEqualityComparer.Equals Method (XNode, XNode)

Compares the values of two nodes.

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

public bool Equals(
	XNode x,
	XNode y
)

Parameters

x
Type: System.Xml.Linq.XNode
The first XNode to compare.
y
Type: System.Xml.Linq.XNode
The second XNode to compare.

Return Value

Type: System.Boolean
A Boolean indicating if the nodes are equal.

Implements

IEqualityComparer<T>.Equals(T, T)

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 pairwise equal content nodes.

  • Two XDocument objects 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.

The following example uses this class to compare two nodes.


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")
);
XNodeEqualityComparer equalityComparer = new XNodeEqualityComparer();
output.Append(equalityComparer.Equals(xmlTree1, xmlTree2) + Environment.NewLine);
xmlTree2.Add(new XElement("NewChild", "new content"));
output.Append(equalityComparer.Equals(xmlTree1, xmlTree2) + Environment.NewLine);

OutputTextBlock.Text = output.ToString();


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

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

Community Additions

ADD
Show: