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::Select Method (String^, IXmlNamespaceResolver^)

 

Selects a node set using the specified XPath expression with the IXmlNamespaceResolver object specified to resolve namespace prefixes.

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

public:
virtual XPathNodeIterator^ Select(
	String^ xpath,
	IXmlNamespaceResolver^ resolver
)

Parameters

xpath
Type: System::String^

A String representing an XPath expression.

resolver
Type: System.Xml::IXmlNamespaceResolver^

The IXmlNamespaceResolver object used to resolve namespace prefixes.

Return Value

Type: System.Xml.XPath::XPathNodeIterator^

An XPathNodeIterator that points to the selected node set.

Exception Condition
ArgumentException

The XPath expression contains an error or its return type is not a node set.

XPathException

The XPath expression is not valid.

The following example illustrates selecting a node set using the Select method with the XmlNamespaceManager object specified to resolve namespace prefixes in the XPath expression.

      XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
      XPathNavigator^ navigator = document->CreateNavigator();

      XmlNamespaceManager^ manager = gcnew XmlNamespaceManager(navigator->NameTable);
      manager->AddNamespace("bk", "http://www.contoso.com/books");

      XPathNodeIterator^ nodes = navigator->Select("/bk:bookstore/bk:book/bk:price", manager);
      // Move to the first node bk:price node.
      if(nodes->MoveNext())
      {
          // Now nodes.Current points to the first selected node.
	    XPathNavigator^ nodesNavigator = nodes->Current;

          // Select all the descendants of the current price node.
   XPathNodeIterator^ nodesText = nodesNavigator->SelectDescendants(XPathNodeType::Text, false);

          while(nodesText->MoveNext())
          {
Console::WriteLine(nodesText->Current->Value);
          }
      }

The example takes the contosoBooks.xml file as an input.


<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
    <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 2.0
Silverlight
Available since 4.0
Return to top
Show:
© 2017 Microsoft