When overridden in a derived class, gets the Name of the current node without any namespace prefix.
Assembly: System.Xml (in System.Xml.dll)
Public MustOverride ReadOnly Property LocalName As String Get
public abstract string LocalName { get; }
public: virtual property String^ LocalName { String^ get () abstract; }
abstract LocalName : string
Property Value
Type: System.StringA 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).
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 |
The following example iterates over the node tree recursively, and displays information about Element and Text nodes.
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
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); } } }
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.
<?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 SP1Windows 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.