.NET Framework Class Library
XPathNavigator..::.LocalName Property

When overridden in a derived class, gets the Name of the current node without any namespace prefix.

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

Visual Basic (Declaration)
Public MustOverride ReadOnly Property LocalName As String
Visual Basic (Usage)
Dim instance As XPathNavigator
Dim value As String

value = instance.LocalName
C#
public abstract string LocalName { get; }
Visual C++
public:
virtual property String^ LocalName {
    String^ get () abstract;
}
JScript
public abstract function get LocalName () : String

Property Value

Type: System..::.String
A String that contains the local name of the current node, or String..::.Empty if the current node does not have a name (for example, text or comment nodes).
Remarks

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

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

XPathNodeType

Property Value

Element

The local name of the element.

Attribute

The local name of the attribute.

Namespace

The prefix associated with the namespace URI.

ProcessingInstruction

The target of the processing instruction.

All other XPathNodeType nodes

String..::.Empty.

Examples

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

Visual Basic
Shared Sub XPathNavigatorMethods_MoveToNext()

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

    While nodeset.MoveNext()
        ' Clone iterator here when working with it.
        RecursiveWalk(nodeset.Current.Clone())
    End While

End Sub

Shared Sub RecursiveWalk(ByVal navigator As XPathNavigator)

    Select Case navigator.NodeType
        Case XPathNodeType.Element
            If navigator.Prefix = String.Empty Then
                Console.WriteLine("<{0}>", navigator.LocalName)
            Else
                Console.Write("<{0}:{1}>", navigator.Prefix, navigator.LocalName)
                Console.WriteLine(vbTab + navigator.NamespaceURI)
            End If
        Case XPathNodeType.Text
            Console.WriteLine(vbTab + navigator.Value)
    End Select

    If navigator.MoveToFirstChild() Then
        Do
            RecursiveWalk(navigator)
        Loop While (navigator.MoveToNext())

        navigator.MoveToParent()
        If (navigator.NodeType = XPathNodeType.Element) Then
            Console.WriteLine("</{0}>", navigator.Name)
        End If
    Else
        If navigator.NodeType = XPathNodeType.Element Then
            Console.WriteLine("</{0}>", navigator.Name)
        End If
    End If

End Sub
C#
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);
        }
    }
}
Visual C++
    static void XPathNavigatorMethods_MoveToNext()
    {

        XPathDocument^ document = gcnew 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());
        }
    }

    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.

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

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

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
See Also

Reference

Tags :


Page view tracker