XPathNavigator::Name Property
When overridden in a derived class, gets the qualified name of the current node.
Assembly: System.Xml (in System.Xml.dll)
Property Value
Type: System::String^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 |
|---|---|
The qualified name of the Element. In the following example, <bk:book>, the name of the element node is bk:book. | |
The qualified name of the Attribute. In the following example, <book bk:genre='novel'>, the name of the Attribute node is bk:genre. | |
The prefix associated with the namespace URI. In the following namespace declaration, xmlns:bk='urn:samples', the Name property returns bk. | |
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 |
The following example iterates over the node tree recursively, and displays information about Element and Text nodes.
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>
Available since 1.1
Silverlight
Available since 4.0