XPathNavigator.Select Methode

Definitie

Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie.

Overloads

Name Description
Select(String)

Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie.

Select(XPathExpression)

Selecteert een knooppuntset met behulp van de opgegeven XPathExpression.

Select(String, IXmlNamespaceResolver)

Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie met het IXmlNamespaceResolver object dat is opgegeven om voorvoegsels voor naamruimten op te lossen.

Select(String)

Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs

Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie.

public:
 virtual System::Xml::XPath::XPathNodeIterator ^ Select(System::String ^ xpath);
public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath);
abstract member Select : string -> System.Xml.XPath.XPathNodeIterator
override this.Select : string -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function Select (xpath As String) As XPathNodeIterator

Parameters

xpath
String

Een String weergave van een XPath-expressie.

Retouren

Een XPathNodeIterator verwijzing naar de geselecteerde knooppuntset.

Uitzonderingen

De XPath-expressie bevat een fout of het retourtype is geen knooppuntset.

De XPath-expressie is ongeldig.

Voorbeelden

In het volgende voorbeeld wordt de Select methode gebruikt om een knooppuntset te selecteren.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathNodeIterator nodes = navigator.Select("/bookstore/book");
nodes.MoveNext();
XPathNavigator nodesNavigator = nodes.Current;

XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

while (nodesText.MoveNext())
    Console.WriteLine(nodesText.Current.Value);
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")
nodes.MoveNext()
Dim nodesNavigator As XPathNavigator = nodes.Current

Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

While nodesText.MoveNext()
    Console.WriteLine(nodesText.Current.Value)
End While

In het voorbeeld wordt het books.xml bestand als invoer gebruikt.

<?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>

Opmerkingen

De context voor de selectie is de positie van de XPathNavigator methode wanneer deze methode wordt aangeroepen. Nadat u deze methode hebt aangeroepen, vertegenwoordigt de XPathNodeIterator geretourneerde set geselecteerde knooppunten. Gebruik MoveNext de methode voor het XPathNodeIterator herhalen van de geselecteerde knooppuntset.

De volgende C#-code doorloopt de geselecteerde set knooppunten.

XPathNodeIterator iterator = nav.Select("/bookstore/book");
while (iterator.MoveNext())
{
    Console.WriteLine(Iterator.Current.Name);
}

Hier volgen belangrijke opmerkingen bij het gebruik van de Select methode.

  • U kunt nog steeds een van de navigatiemethoden van het XPathNavigator object gebruiken om binnen het XPathNavigatorobject te navigeren. De XPathNavigator navigatiemethoden zijn onafhankelijk van de geselecteerde knooppunten in de XPathNodeIterator.

  • Toekomstige aanroepen naar de Select methode retourneren een nieuw XPathNodeIterator object dat verwijst naar de geselecteerde set knooppunten die overeenkomen met de nieuwe Select aanroep. De twee XPathNodeIterator objecten zijn volledig onafhankelijk van elkaar.

  • Als voor de XPath-expressie naamruimteomzetting is vereist, gebruikt u de Select overbelasting, die een XPathExpression als argument gebruikt.

  • Deze methode heeft geen effect op de status van de XPathNavigator.

Zie ook

Van toepassing op

Select(XPathExpression)

Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs

Selecteert een knooppuntset met behulp van de opgegeven XPathExpression.

public:
 virtual System::Xml::XPath::XPathNodeIterator ^ Select(System::Xml::XPath::XPathExpression ^ expr);
public virtual System.Xml.XPath.XPathNodeIterator Select(System.Xml.XPath.XPathExpression expr);
abstract member Select : System.Xml.XPath.XPathExpression -> System.Xml.XPath.XPathNodeIterator
override this.Select : System.Xml.XPath.XPathExpression -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function Select (expr As XPathExpression) As XPathNodeIterator

Parameters

expr
XPathExpression

Een XPathExpression object met de gecompileerde XPath-query.

Retouren

Een XPathNodeIterator die verwijst naar de geselecteerde knooppuntset.

Uitzonderingen

De XPath-expressie bevat een fout of het retourtype is geen knooppuntset.

De XPath-expressie is ongeldig.

Voorbeelden

In het volgende voorbeeld wordt de Select methode gebruikt om een knooppuntset te selecteren.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathExpression query = navigator.Compile("/bookstore/book");
XPathNodeIterator nodes = navigator.Select(query);
XPathNavigator nodesNavigator = nodes.Current;

XPathNodeIterator nodesText = nodesNavigator.SelectDescendants(XPathNodeType.Text, false);

while (nodesText.MoveNext())
{
    Console.WriteLine(nodesText.Current.Value);
}
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim query As XPathExpression = navigator.Compile("/bookstore/book")
Dim nodes As XPathNodeIterator = navigator.Select(query)
Dim nodesNavigator As XPathNavigator = nodes.Current

Dim nodesText As XPathNodeIterator = nodesNavigator.SelectDescendants(XPathNodeType.Text, False)

While nodesText.MoveNext()
    Console.WriteLine(nodesText.Current.Value)
End While

In het voorbeeld wordt het books.xml bestand als invoer gebruikt.

<?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>

Opmerkingen

De context voor de selectie is de positie van de XPathNavigator methode die u aangeroepen hebt. Nadat u deze methode hebt aangeroepen, vertegenwoordigt de XPathNodeIterator geretourneerde set geselecteerde knooppunten. Gebruik MoveNext deze XPathNodeIterator optie om de geselecteerde knooppuntset te herhalen.

De volgende C#-code doorloopt de geselecteerde set knooppunten.

XPathNodeIterator ni = nav.Select(expr);
while (ni.MoveNext())
{
    Console.WriteLine(ni.Current.Name);
}

Hier volgen belangrijke opmerkingen bij het gebruik van de Select methode.

Stel dat het document de volgende XML-knooppunten bevat.

<bookstore xmlns:bk='urn:samples'>
    <book bk:ISBN='1-325-0980'>
        <title>Pride And Prejudice</title>
    </book>
</bookstore>

In dit geval selecteert de volgende C#-code het bk:ISBN knooppunt.

XPathExpression expr = nav.Compile("book/@bk:ISBN");
XmlNamespaceManager mngr = new XmlNamespaceManager(new NameTable());
mngr.AddNamespace("bk","urn:samples");
expr.SetContext(mngr);
XPathNodeIterator ni = nav.Select(expr);

Note

Als het XPathExpression geen voorvoegsel bevat, wordt ervan uitgegaan dat de naamruimte-URI de lege naamruimte is. Als uw XML een standaardnaamruimte bevat, moet u nog steeds de SetContext methode gebruiken en een XmlNamespaceManager URI met een voorvoegsel en naamruimte-URI opgeven om de standaardnaamruimte te verwerken.

Stel dat u de volgende XML hebt.

<bookstore xmlns="http://www.lucernepublishing.com">
    <book>
        <title>Pride And Prejudice</title>
    </book>
</bookstore>

In dit geval selecteert de volgende C#-code alle boekknooppunten:

XmlNamespaceManager nsmgr = new XmlNamespaceManager(nav.NameTable);
nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com");
XPathExpression expr;
expr = nav.Compile("//ab:book");
expr.SetContext(nsmgr);
XPathNodeIterator ni = nav.Select(expr);

Deze methode heeft geen effect op de status van de XPathNavigator.

Zie ook

Van toepassing op

Select(String, IXmlNamespaceResolver)

Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs
Bron:
XPathNavigator.cs

Selecteert een knooppuntset met behulp van de opgegeven XPath-expressie met het IXmlNamespaceResolver object dat is opgegeven om voorvoegsels voor naamruimten op te lossen.

public:
 virtual System::Xml::XPath::XPathNodeIterator ^ Select(System::String ^ xpath, System::Xml::IXmlNamespaceResolver ^ resolver);
public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath, System.Xml.IXmlNamespaceResolver? resolver);
public virtual System.Xml.XPath.XPathNodeIterator Select(string xpath, System.Xml.IXmlNamespaceResolver resolver);
abstract member Select : string * System.Xml.IXmlNamespaceResolver -> System.Xml.XPath.XPathNodeIterator
override this.Select : string * System.Xml.IXmlNamespaceResolver -> System.Xml.XPath.XPathNodeIterator
Public Overridable Function Select (xpath As String, resolver As IXmlNamespaceResolver) As XPathNodeIterator

Parameters

xpath
String

Een String weergave van een XPath-expressie.

resolver
IXmlNamespaceResolver

Het IXmlNamespaceResolver object dat wordt gebruikt voor het omzetten van voorvoegsels voor naamruimten.

Retouren

Een XPathNodeIterator die verwijst naar de geselecteerde knooppuntset.

Uitzonderingen

De XPath-expressie bevat een fout of het retourtype is geen knooppuntset.

De XPath-expressie is ongeldig.

Voorbeelden

In het volgende voorbeeld ziet u hoe u een knooppuntset selecteert met behulp van de Select methode met het XmlNamespaceManager object dat is opgegeven om naamruimtevoorvoegsels in de XPath-expressie op te lossen.

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);
    }
}
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

In het voorbeeld wordt het contosoBooks.xml bestand als invoer gebruikt.

<?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>

Van toepassing op