Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

XPathNavigator.Name Property

When overridden in a derived class, gets the qualified name of the current node.

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

public abstract string Name { get; }
/** @property */
public abstract String get_Name ()

public abstract function get Name () : String

Property Value

A String that contains the qualified Name of the current node, or String.Empty if the current node does not have a name (for example, text or comment nodes).

The Name returned depends on the XPathNodeType of the current node. For example, the name for the <bk:book> element is bk:book.

The following table lists the value returned by the Name property, based on the XPathNodeType of the current node.

XPathNodeType

Property Value

Element

The qualified name of the Element. In the following example, <bk:book>, the name of the element node is bk:book.

Attribute

The qualified name of the Attribute. In the following example, <book bk:genre='novel'>, the name of the Attribute node is bk:genre.

Namespace

The prefix associated with the namespace URI. In the following namespace declaration, xmlns:bk='urn:samples', the Name property returns bk.

ProcessingInstruction

The target of the ProcessingInstruction. In the following example, <?xml-stylesheet type='text/xsl' href= 'books.xsl'?>, the Name property returns xml-stylesheet.

All other XPathNodeType nodes

String.Empty.

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.

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

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

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

.NET Framework

Supported in: 2.0, 1.1, 1.0
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.