XNode.CompareDocumentOrder Method
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Compares two nodes to determine their relative XML document order.
Namespace: System.Xml.Linq
Assembly: System.Xml.Linq (in System.Xml.Linq.dll)
Syntax
'Declaration
Public Shared Function CompareDocumentOrder ( _
n1 As XNode, _
n2 As XNode _
) As Integer
public static int CompareDocumentOrder(
XNode n1,
XNode n2
)
Parameters
- n1
Type: System.Xml.Linq.XNode
First XNode to compare.
- n2
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.
Exceptions
Exception | Condition |
---|---|
InvalidOperationException | The two nodes do not share a common ancestor. |
Examples
The following example uses this method.
Dim output As New StringBuilder
Dim xmlTree As XElement = _
<Root>
<Child1>
<GrandChild1>1</GrandChild1>
<GrandChild2>2</GrandChild2>
<GrandChild3>3</GrandChild3>
</Child1>
<Child2>
<GrandChild4>4</GrandChild4>
<GrandChild5>5</GrandChild5>
<GrandChild6>6</GrandChild6>
</Child2>
</Root>
Dim el1 As XElement = xmlTree...<GrandChild2>(0)
Dim el2 As XElement = xmlTree...<GrandChild6>(0)
If (XElement.CompareDocumentOrder(el1, el2) = 0) Then
output.Append("Compared elements are the same element")
output.Append(Environment.NewLine)
ElseIf (XElement.CompareDocumentOrder(el1, el2) > 0) Then
output.Append("el1 is after el2")
output.Append(Environment.NewLine)
Else
output.Append("el1 is before el2")
output.Append(Environment.NewLine)
End If
OutputTextBlock.Text = output.ToString()
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);
else
output.Append("el1 is before el2" + Environment.NewLine);
OutputTextBlock.Text = output.ToString();
Version Information
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
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
See Also