XNodeDocumentOrderComparer.Compare Method

Compares two nodes to determine their relative document order.

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

public int Compare(
	XNode x,
	XNode y


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

Return Value

Type: System.Int32
An Int32 that contains 0 if the nodes are equal; -1 if x is before y; 1 if x is after y.


IComparer<T>.Compare(T, T)


The two nodes do not share a common ancestor.

We recommend that instead of using this class directly, you use the InDocumentOrder<T> method. This class is used internally by that method.

The following example uses this class to compare document order for two nodes.

StringBuilder output = new StringBuilder();
XElement xmlTree = new XElement("Root",
    new XText("Text content."),
    new XElement("Child1", "child1 content"),
    new XElement("Child2", "child2 content"),
    new XElement("Child3", "child3 content"),
    new XText("More text content."),
    new XElement("Child4", "child4 content"),
    new XElement("Child5", "child5 content")
XElement child3 = xmlTree.Element("Child3");
XElement child5 = xmlTree.Element("Child5");
XNodeDocumentOrderComparer documentOrderComparer = new XNodeDocumentOrderComparer();
int val = documentOrderComparer.Compare(child3, child5);
if (val == 0)
    output.Append("Child3 is same as Child5" + Environment.NewLine);
else if (val < 0)
    output.Append("Child3 is before Child5" + Environment.NewLine);
    output.Append("Child3 is after Child5" + Environment.NewLine);

OutputTextBlock.Text = output.ToString();


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