System.Xml [00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00] 1.0.5000.0 2.0.0.0 All the dynamic members are not designed to be thread safe. System.Xml.XPath.XPathItem System.ICloneable System.Xml.IXmlNamespaceResolver System.Xml.XPath.IXPathNavigable Provides XPath oriented document navigation feature.

This class provides an alternative way to access to XML document than World Wide Web Consortium (W3C) standard Document Object Model. XPathNavigator is designed to navigate document based on "XPath data model" (See W3C XPath Recommendation). Unlike and , XPathNavigator does not expose its internal tree structure. Instead, this class exposes "current node" information by its properties and methods such as , , , and so on. See also enumeration that represents all the node types that represents XPathNavigator node type.

With method, you can evaluate XPath expression against the current node. This method returns value for the evaluation result that might be either string, number, boolean, node-set or result-tree-fragment. Similarly, method evaluates argument XPath expression that returns XPath "node set" represented as an instance.

This class defines some "navigation" methods such as and . They are mainly used in XPath evaluation.

Attribute nodes can be visited using or methods. Instead of navigation, attributes values are directly available via method.

Namespace nodes can be also visited using or methods. Note: In terms of XPath, there are three kind of namespace nodes: 1) local namespace declarations, 2) ancestor's namespace declarations that is not overriden by other nearer ancestors, and 3) fixed "xml" prefix that is mapped to "http://www.w3.org/XML/1998/namespace" . Navigation can be filtered using .

XPathNavigator is an abstract class and derived classes are provided via . There are two IXPathNavigable implementations in System.Xml.dll: and . XPathNavigator can be derived by third-party libraries. Also, they don't have to be limited to XML document navigation.

Note: XPathDocument is optimized for navigation, but to create fully-functional XPathNavigator instance that supports , is required to construct the tree, that means it damages performance. XmlDocument is not optimized for navigation (especially, previous-sibling navigation is much slower than XPathDocument navigator), but it does not require XmlValidatingReader to support ID navigation. It is recommended to choose implementation case by case.

- Constructor
  The constructor.
  To be added.
  1.0.5000.0
  2.0.0.0
- Method
  System.Xml.XmlWriter To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Property
  System.String Represents the base URI of the current node. A string that represents the base URI. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.Boolean To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XPath.XPathNavigator Clones this instance and returns the copy. The cloned XPathNavigator. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XmlNodeOrder `` The XPathNavigator that is being compared. Evaluates in which direction the current node of the argument XPathNavigator exists as compared to the current node of this instance. if the argument navigator comes from different IXPathNavigable instance; if the navigator is positioned on the same location as this navigator; if this instance positions current node before the current node of the argument navigator; if the argument navigator positions current node before the current node of this instance. If argument navigator was null, then is thrown. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathExpression `` A string that represents XPath expression. Compiles the specified string that represents XPath expression and returns instance. An instance that is the result of compilation. When the specified string did not conform to XPath expression syntax, will be thrown. 1.0.5000.0 2.0.0.0
- Method
  System.Void `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XmlWriter To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XPath.XPathNavigator To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void To be added. To be added. 2.0.0.0
- Method
  System.Object `` A string value that represents an XPath expression Evaluates an XPath expression and returns the result. The call to this method is equivalent to Evaluate (Compile (xpath)). An instance that represents the evaluation result. To evaluate such XPath expression that contains certain namespace prefixes, XmlNamespaceManager is required and thus XPathExpression is required to do such evaluation. 1.0.5000.0 2.0.0.0
- Method
  System.Object `` An instance that represents an XPath expression. Evaluates an XPath expression and returns the result. The call to this method is equivalent to Evaluate (expr, null). An instance that represents the evaluation result. To evaluate such XPath expression that contains certain namespace prefixes, the argument expression must be supplied XmlNamespaceManager via method. If no matching namespace prefix were found in the XPath expression, an is thrown. 1.0.5000.0 2.0.0.0
- Method
  System.Object `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Object `` `` An instance that represents an XPath expression. An instance that represents the context node. Evaluates an XPath expression and returns the result. An instance that represents the evaluation result.

  To evaluate such XPath expression that contains certain namespace prefixes, the argument expression must be supplied XmlNamespaceManager via method. If no matching namespace prefix were found in the XPath expression, an is thrown.

  Note: "context" argument means different from "current node" represented by this instance itself. (See current() function specified in XSLT specification for details.)

  1.0.5000.0
  2.0.0.0
- Method
  System.String `` `` The local part of the target attribute name. The namespace URI part of the target attribute name. Gets the value string of the specified attribute. The value of the specified attribute. String.Empty if the current node is not element, or specified attribute was not found. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.String `` A string that represents the prefix. Gets the namespace URI that is mapped to the argument prefix. The namespace URI string if there was the specified namespace node. String.Empty if no such namespace node. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Collections.Generic.IDictionary<System.String,System.String> `` To be added. To be added. To be added. To be added. 2.0.0.0
- Property
  System.Boolean Indicates if the current node has attributes or not. True if the current node is element and has one or more attributes; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.Boolean Indicates if the current node has children or not. True if the current node is element and has one or more children; Otherwise False (attribute and namespace nodes don't have "children"). To be added. 1.0.5000.0 2.0.0.0
- Property
  System.String To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XmlWriter To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XmlWriter To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` The XPathNavigator that is being evaluated. Evaluates if the current node of the argument XPathNavigator is a descendant of the current node of this instance. True if the argument navigator is a descendant of this navigator; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.Boolean Indicates if the current node is "empty tag element" or not. True if the current ndoe is empty tag element; False if the current node is not an element, or an element that has contents, or an element that has explicit close tag. This property is nothing to do with XPath data model, nor constructs any part of XML Infoset. This only affects to the XSLT output format. 1.0.5000.0 2.0.0.0
- Property
  System.Boolean To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` An that is being compared the current node's position. Evaluates if the current node of the argument XPathNavigator is positioned as the same as the current node of this instance. True if the current node was the same position; Otherwise False. This method only works when both of the XPathNavigators were created from the same instance. It won't work for example when one was created from and the other was created from even if they positions the same node. 1.0.5000.0 2.0.0.0
- Property
  System.String Represents the local part of the current node, or prefix of the current namespace node. A string that represents the local name or the namespace prefix. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.String `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.String `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` A string that represents the XPath expression. Evaluates if the current node matches with the argument XPath expression. The call to this method is equivalent to Matches (Compile (xpath)). True if the current node matches; otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` An instance that represents an XPath expression. Evaluates if the current node matches with the argument XPath expression. True if the current node matches; otherwise False. To evaluate such XPath expression that contains certain namespace prefixes, the argument expression must be supplied XmlNamespaceManager via method. If no matching namespace prefix were found in the XPath expression, an is thrown. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` An that positions the target node. Moves the current node of this instance to the current node of the argument navigator. True if it successfully moved the current node; Otherwise False. This method will fail to move the current node when the both navigator were not created from the same instance. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` `` The local part of the target attribute name. The namespace URI part of the target attribute name. Moves the current node to the specified attribute. True if the current node was successfully moved to the specified attribute; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean Moves the current node to the first sibling node. True if the current node was not the first sibling and moved successfully; False if it is the first node for the other siblings. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean Moves the current node to the first attribute. True if the current node was successfully moved to the first attribute; False if the current node is not element, or the current element has no attributes. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean Moves the current node to the first child node. True if the current node had the first child and moved successfully; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean Moves the current node to the first namespace node. The call to this method is euivalent to MoveToFirstNamespace (XPathNamespaceScope.All). True if the current node was an element and successfully moved to the first namespace node; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` An value that filters the target namespace nodes. Moves the current node to the first namespace node, filtered by the argument scope. True if the current node the namespace nodes and moved to the first namespace node successfully; False if the current node is not an element. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` A string that represents the target node ID. Moves the current node to the node that matches with the specified ID. True if the current node was successfully moved; Otherwise False. When is used as the source , only document type definition is required to support node ID. When is used, then that XPathDocument must be created with or any other constructor parameter than . 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` A string that represents the prefix. Mpves the current node to the namespace node that has the specified prefix. True if there was the specified namespace node and moved to the namespace node successfully; False if no such namespace node. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean Moves the current node to the next sibling node. True if the current node has the next sibling and moved successfully; False if it is the last node. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Boolean Moves the current node to the next attribute. True if the current node was successfully moved to the next attribute; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean Moves the current node to the next namespace node. The call to this method is euivalent to MoveToNextNamespace (XPathNamespaceScope.All). True if the current node was a namespace node and successfully moved to the next namespace node; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean `` An value that filters the target namespace nodes. Moves the current node to the next namespace node, filtered by the argument scope. True if the current node has the next namespace and moved successfully; False if it is the last namespace node or not positioned a namespace node. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean Moves the current node to the parent node. If the current node is attribute, then it moves to the owner element node. It also applies to the current node is namespace (note that the parent node of a namespace node is not always local parent node). True if the current node had parent node and moved successfully; Otherwise False. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Boolean Moves the current node to the previous sibling node. True if the current node has the previous sibling and moved successfully; False if it is the first node. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Void Moves the current node to the document root. This method never fails. Even if the navigator is created from , the navigator moves to the , not the argument XmlNode. 1.0.5000.0 2.0.0.0
- Property
  System.String Represents the prefixed tag name of the current node, or namespace prefix of the current namespace node. A string that represents the tag name or the namespace prefix. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.String Represents the namespace URI part of the current node, or namespace URI of the current namespace node. A string that represents the namespace URI. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.Xml.XmlNameTable The name table that is used in this instance. An instance for this instance. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.Collections.IEqualityComparer To be added. To be added. To be added. 2.0.0.0
- Property
  System.Xml.XPath.XPathNodeType Represents the node type of the current node based on "XPath data model". An value that indicates the node type of the current node. The initial value of this property depends on the each XPathNavigator implementation (that is, it depends on ). 1.0.5000.0 2.0.0.0
- Property
  System.String To be added. To be added. To be added. 2.0.0.0
- Property
  System.String Represents the prefix of the current node. A string that represents the prefix of the current node, or String.Empty if the current node is namespace. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XmlWriter To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` `` `` `` To be added. To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XmlReader To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XmlWriter `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Property
  System.Xml.Schema.IXmlSchemaInfo To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` A string value that represents an XPath expression Evaluates an XPath expression that returns XPath node-set and returns the result. The call to this method is equivalent to Select (Compile (xpath)). An instance that holds all the results. To evaluate such XPath expression that contains certain namespace prefixes, XmlNamespaceManager is required and thus XPathExpression is required to do such evaluation. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` An instance that represents an XPath expression. Evaluates an XPath expression that returns XPath node-set and returns the result. This method is the same as the result of Select (Compile (xpath)). An instance that holds all the results. To evaluate such XPath expression that contains certain namespace prefixes, the argument expression must be supplied XmlNamespaceManager via method. If no matching namespace prefix were found in the XPath expression, an is thrown. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` `` An value that indicates the filtered type of the node query. Indicates if the result contains the current node itself or not. Selects the ancestor nodes and optionally the current node itself that has specific node type. The instance that holds all the resulting nodes. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` `` `` The local part of the target node name. The namespace URI part of the target node name. Indicates if the result contains the current node itself or not. Selects the ancestor nodes and optionally the current node itself that has specific qualified name of the current node of this instance. The typical usage of this method is internal XPath evaluation of "ancestor::foo" or "ancestor-or-self::bar". The instance that holds all the resulting nodes. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` An value that indicates the filtered type of the node query. Selects the child nodes that has specific qualified name. The instance that holds all the resulting nodes. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` `` The local part of the target node name. The namespace URI part of the target node name. Selects the child nodes that has specific qualified name. The instance that holds all the resulting nodes. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` `` An value that indicates the filtered type of the node query. Indicates if the result contains the current node itself or not. Selects the descendant nodes and optionally the current node itself that has specific node type. The instance that holds all the resulting nodes. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNodeIterator `` `` `` The local part of the target node name. The namespace URI part of the target node name. Indicates if the result contains the current node itself or not. Selects the descendant nodes and optionally the current node itself that has specific qualified name of the current node of this instance. The typical usage of this method is internal XPath evaluation of "descendant::foo" or "descendant-or-self::bar". The instance that holds all the resulting nodes. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.Xml.XPath.XPathNavigator `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XPath.XPathNavigator `` To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Xml.XPath.XPathNavigator `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Method
  System.Object To be added. To be added. To be added. 1.0.5000.0 2.0.0.0
- Method
  System.String Overriden. Returns the node value of the current node. The value is equivalent to property. A string that represents the node value. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.Object To be added. To be added. To be added. 2.0.0.0
- Property
  System.Object To be added. To be added. To be added. 2.0.0.0
- Property
  System.String Represents the "value" of the current node. A string that represents the value of the current node.

  The definition of the "value" of a node is 1) concatenation of the values of each descendant nodes for and nodes, 2) namespace URI for , and 3) value string (as is) for all other kind of node types.

  Note: When the instance of this class is created from , the sequential nodes (except for nodes) are regarded as one text or node (strictly to say, , or ).

  1.0.5000.0
  2.0.0.0
- Method
  System.Object `` `` To be added. To be added. To be added. To be added. To be added. 2.0.0.0
- Property
  System.Boolean To be added. To be added. To be added. 2.0.0.0
- Property
  System.DateTime To be added. To be added. To be added. 2.0.0.0
- Property
  System.Double To be added. To be added. To be added. 2.0.0.0
- Property
  System.Int32 To be added. To be added. To be added. 2.0.0.0
- Property
  System.Int64 To be added. To be added. To be added. 2.0.0.0
- Property
  System.Type To be added. To be added. To be added. 2.0.0.0
- Method
  System.Void `` To be added. To be added. To be added. 2.0.0.0
- Property
  System.String Represents the xml:lang context value that is specified in the current node, or inherited from the nearest ancestor of the current node that is locally specified xml:lang attribute. A string value that contains xml:lang context value. To be added. 1.0.5000.0 2.0.0.0
- Property
  System.Xml.Schema.XmlSchemaType To be added. To be added. To be added. 2.0.0.0