Windows apps
Collapse the table of content
Expand the table of content
Information
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

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:
property String^ NamespaceURI {
	virtual String^ get() abstract;
}

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 AttributeXPathNodeType 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 = 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
Available since 1.1
Silverlight
Available since 4.0
Return to top
Show:
© 2017 Microsoft