.NET Framework Class Library
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)
Syntax

Visual Basic (Declaration)
Public Overridable Function Select ( _
    xpath As String, _
    resolver As IXmlNamespaceResolver _
) As XPathNodeIterator
Visual Basic (Usage)
Dim instance As XPathNavigator
Dim xpath As String
Dim resolver As IXmlNamespaceResolver
Dim returnValue As XPathNodeIterator

returnValue = instance.Select(xpath, resolver)
C#
public virtual XPathNodeIterator Select(
    string xpath,
    IXmlNamespaceResolver resolver
)
Visual C++
public:
virtual XPathNodeIterator^ Select(
    String^ xpath, 
    IXmlNamespaceResolver^ resolver
)
JScript
public function Select(
    xpath : String, 
    resolver : IXmlNamespaceResolver
) : XPathNodeIterator

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.
Exceptions

ExceptionCondition
ArgumentException

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

XPathException

The XPath expression is not valid.

Examples

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.

Visual Basic
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim manager As XmlNamespaceManager = New XmlNamespaceManager(navigator.NameTable)
manager.AddNamespace("bk", "http://www.contoso.com/books")

Dim nodes As XPathNodeIterator = navigator.Select("/bk:bookstore/bk:book/bk:price", manager)
' Move to the first node bk:price node.
If (nodes.MoveNext()) Then
    ' Now nodes.Current points to the first selected node.
    Dim nodesNavigator As XPathNavigator = nodes.Current

    ' Select all the descendants of the current price node.
    Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

    While nodesText.MoveNext()
        Console.WriteLine(nodesText.Current.Value)
    End While
End If
C#
XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();
XmlNamespaceManager manager = new 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);
    }
}
Visual C++
        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.

None
<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>
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
See Also

Reference

Tags :


Page view tracker