XNodeDocumentOrderComparer::Compare Method (XNode^, XNode^)
Compares two nodes to determine their relative document order.
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
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::Int32An Int32 that contains 0 if the nodes are equal; -1 if x is before y; 1 if x is after y.
Implements
IComparer<T>::Compare(T, T)| 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
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