XPathNavigator.MoveToFirstNamespace Method (XPathNamespaceScope)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

When overridden in a derived class, moves the XPathNavigator to the first namespace node that matches the XPathNamespaceScope specified.

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

public abstract bool MoveToFirstNamespace(
	XPathNamespaceScope namespaceScope


Type: System.Xml.XPath.XPathNamespaceScope

An XPathNamespaceScope value describing the namespace scope.

Return Value

Type: System.Boolean

Returns true if the XPathNavigator is successful moving to the first namespace node; otherwise, false. If false, the position of the XPathNavigator is unchanged.

The XPathNavigator class returns namespace nodes in reverse document order. Therefore, MoveToFirstNamespace essentially moves to the last namespace node in the current scope.

Using the following XML fragment as an example, if the XPathNavigator is positioned on the data node, MoveToFirstNamespace behaves in the following manner.

  • MoveToFirstNamespace(XPathNamespaceScope.All) moves to one of the following namespace nodes: xmlns:c='C', xmlns:a='A2', xmlns='', xmlns:b='B', or xmlns:xml='http://www.w3.org/XML/1998/namespace'.

  • MoveToFirstNamespace(XPathNamespaceScope.ExcludeXml) moves to one of the following namespace nodes: xmlns:c='C', xmlns:a='A2', xmlns='', or xmlns:b='B'.

  • MoveToFirstNamespace(XPathNamespaceScope.Local) moves to the xmlns:c='C' node.

<root xmlns='urn:default' xmlns:a='A1' xmlns:b='B'>
    <item xmlns='' xmlns:a='A2'>
        <data xmlns:c='C' />

If the XPathNavigator is not currently positioned on an element, this method returns false and the position of the XPathNavigator does not change. After the XPathNavigator has been moved to the namespace node, the Name property reflects the name of the namespace.

When the XPathNavigator is positioned on a namespace node, the methods MoveToNext, MoveToPrevious, and MoveToFirst are not applicable. These methods always return false and do not change the position of the XPathNavigator. Rather, you can call MoveToNextNamespace to move to the next namespace node.

After the XPathNavigator is positioned on an namespace node, call MoveToParent to move back to the element node.

For a definition of namespace nodes, see section 5.4 of the W3C XML Path Language (XPath) recommendation located at http://www.w3.org/TR/xpath#data-model.

.NET Framework
Available since 1.1
Available since 4.0
Return to top