This documentation is archived and is not being maintained.

XPathNavigator.ComparePosition Method

Compares the position of the current XPathNavigator with the position of the XPathNavigator specified.

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

public virtual XmlNodeOrder ComparePosition(
	XPathNavigator nav


Type: System.Xml.XPath.XPathNavigator
The XPathNavigator to compare against.

Return Value

Type: System.Xml.XmlNodeOrder
An XmlNodeOrder value representing the comparative position of the two XPathNavigator objects.

The following table describes the XmlNodeOrder enumeration.




The current node of this XPathNavigator is before the current node of the supplied XPathNavigator.


The current node of this XPathNavigator is after the current node of the supplied XPathNavigator.


The two XPathNavigator objects are positioned on the same node.


The node positions cannot be determined relative to each other in the document order, or null is specified as the XPathNavigator parameter. This could occur if the two nodes reside in different trees.

The ComparePosition method's behavior is dependent on the XPathNodeType the XPathNavigator is currently positioned on. When comparing nodes in the XML document, the following rules apply:

  • Element nodes: These nodes are returned in document order from the source document.

  • Namespace nodes: These nodes may be returned in document order and are always before the Attribute nodes of the parent element.

  • Attribute nodes: These nodes may be returned in document order. They always come after the Namespace nodes and before any child nodes of the parent node.


For more information about the XPath data model and details about each of the node types, see section 5 of the W3C XML Path Language (XPath) recommendation located at

This method has no effect on the state of the XPathNavigator.


Use the IsSamePosition method rather than the ComparePosition method when possible.

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.