Export (0) Print
Expand All

XPathNavigator.NamespaceURI Property

When overridden in a derived class, gets the namespace URI of the current node.

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

public abstract string NamespaceURI { get; }

Property Value

Type: System.String
A String that contains the namespace URI of the current node, or String.Empty if the current node has no namespace URI.

The namespace URI returned depends on the XPathNodeType of the current node.

The NamespaceURI property returns urn:samples for the node <bk:book xmlns:bk='urn:samples'>.

Only Element and Attribute XPathNodeType nodes can have a namespace URI.

The following example iterates over the node tree recursively, and displays information about Element and Text nodes.


static void XPathNavigatorMethods_MoveToNext()
{

    XPathDocument document = new XPathDocument("books.xml");
    XPathNavigator navigator = document.CreateNavigator();
    XPathNodeIterator nodeset = navigator.Select("descendant::book[author/last-name='Melville']");

    while (nodeset.MoveNext())
    {
        // Clone iterator here when working with it.
        RecursiveWalk(nodeset.Current.Clone());
    }
}

public static void RecursiveWalk(XPathNavigator navigator)
{
    switch (navigator.NodeType)
    {
        case XPathNodeType.Element:
            if (navigator.Prefix == String.Empty)
                Console.WriteLine("<{0}>", navigator.LocalName);
            else
                Console.Write("<{0}:{1}>", navigator.Prefix, navigator.LocalName);
            Console.WriteLine("\t" + navigator.NamespaceURI);
            break;
        case XPathNodeType.Text:
            Console.WriteLine("\t" + navigator.Value);
            break;
    }

    if (navigator.MoveToFirstChild())
    {
        do
        {
            RecursiveWalk(navigator);
        } while (navigator.MoveToNext());

        navigator.MoveToParent();
        if (navigator.NodeType == XPathNodeType.Element)
            Console.WriteLine("</{0}>", navigator.Name);
    }
    else
    {
        if (navigator.NodeType == XPathNodeType.Element)
        {
            Console.WriteLine("</{0}>", navigator.Name);
        }
    }
}


The example takes the books.xml file as an input.


<?xml version="1.0" encoding="utf-8" ?> 
<bookstore>
    <book genre="autobiography" publicationdate="1981-03-22" ISBN="1-861003-11-0">
        <title>The Autobiography of Benjamin Franklin</title>
        <author>
            <first-name>Benjamin</first-name>
            <last-name>Franklin</last-name>
        </author>
        <price>8.99</price>
    </book>
    <book genre="novel" publicationdate="1967-11-17" ISBN="0-201-63361-2">
        <title>The Confidence Man</title>
        <author>
            <first-name>Herman</first-name>
            <last-name>Melville</last-name>
        </author>
        <price>11.99</price>
    </book>
    <book genre="philosophy" publicationdate="1991-02-15" ISBN="1-861001-57-6">
        <title>The Gorgias</title>
        <author>
            <name>Plato</name>
        </author>
        <price>9.99</price>
    </book>
</bookstore>


.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.

Community Additions

ADD
Show:
© 2014 Microsoft