XNodeDocumentOrderComparer::Compare Method (XNode^, XNode^)

 

Compares two nodes to determine their relative document order.

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

public:
virtual int Compare(
	XNode^ x,
	XNode^ y
) sealed

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::Int32

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

Exception Condition
InvalidOperationException

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.


                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)
    Console.WriteLine("Child3 is same as Child5");
else if (val < 0)
    Console.WriteLine("Child3 is before Child5");
else
    Console.WriteLine("Child3 is after Child5");

This example produces the following output:

Child3 is before Child5

Universal Windows Platform
Available since 8
.NET Framework
Available since 3.5
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
Show: