XNode.CompareDocumentOrder Method

Compares two nodes to determine their relative XML document order.

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

public static int CompareDocumentOrder(
	XNode n1,
	XNode n2


Type: System.Xml.Linq.XNode
First XNode to compare.
Type: System.Xml.Linq.XNode
Second XNode to compare.

Return Value

Type: System.Int32
An int containing 0 if the nodes are equal; -1 if n1 is before n2; 1 if n1 is after n2.


The two nodes do not share a common ancestor.

The following example uses this method.

StringBuilder output = new StringBuilder();
XElement xmlTree = new XElement("Root",
    new XElement("Child1",
        new XElement("GrandChild1", 1),
        new XElement("GrandChild2", 2),
        new XElement("GrandChild3", 3)
    new XElement("Child2",
        new XElement("GrandChild4", 4),
        new XElement("GrandChild5", 5),
        new XElement("GrandChild6", 6)
XElement el1 = xmlTree.Descendants("GrandChild2").First();
XElement el2 = xmlTree.Descendants("GrandChild6").First();
if (XElement.CompareDocumentOrder(el1, el2) == 0)
    output.Append("Compared elements are the same element" + Environment.NewLine);
else if (XElement.CompareDocumentOrder(el1, el2) > 0)
    output.Append("el1 is after el2" + Environment.NewLine);
    output.Append("el1 is before el2" + 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