Selezione di dati XML con XPathNavigator

La classe XPathNavigator fornisce un set di metodi usato per selezionare un set di nodi in un oggetto XPathDocument o XmlDocument usando un'espressione XPath. È possibile scorrere il set di nodi dopo averlo selezionato.

Metodi di selezione di XPathNavigator

La classe XPathNavigator fornisce un set di metodi usato per selezionare un set di nodi in un oggetto XPathDocument o XmlDocument usando un'espressione XPath. La classe XPathNavigator fornisce inoltre un set di metodi ottimizzati per selezionare più velocemente i nodi progenitore, figlio e discendente anziché usare un'espressione XPath. Nel caso di un singolo nodo selezionato, il set di nodi selezionato viene restituito in un oggetto XPathNodeIterator o XPathNavigator.

Selezione di nodi con le espressioni XPath

Per selezionare un set di nodi usando un'espressione XPath, usare uno dei seguenti metodi di selezione.

Nel caso di un singolo nodo selezionato, se chiamati, questi metodi restituiscono un set di nodi che può essere esplorato liberamente usando un oggetto XPathNodeIterator o XPathNavigator.

L'esplorazione di un oggetto XPathNodeIterator non influisce sulla posizione dell'oggetto XPathNavigator usato per crearlo. L'oggetto XPathNavigator restituito dai metodi SelectSingleNode è posizionato nel singolo nodo restituito e non influisce sulla posizione dell'oggetto XPathNavigator usato per crearlo.

Nell'esempio seguente viene illustrata la creazione di un oggetto XPathNavigator da un oggetto XPathDocument, l'uso del metodo Select per selezionare nodi nell'oggetto XPathDocument e l'uso dell'oggetto XPathNodeIterator per scorrere i nodi selezionati.

Dim document As XPathDocument = New XPathDocument("books.xml")  
Dim navigator As XPathNavigator = document.CreateNavigator()  
Dim nodes As XPathNodeIterator = navigator.Select("/bookstore/book")  
  
While nodes.MoveNext()  
    Console.WriteLine(nodes.Current.Name)  
End While  
XPathDocument document = new XPathDocument("books.xml");  
XPathNavigator navigator = document.CreateNavigator();  
XPathNodeIterator nodes = navigator.Select("/bookstore/book");  
  
while(nodes.MoveNext())  
{  
    Console.WriteLine(nodes.Current.Name);  
}  

Nell'esempio il file books.xml viene considerato come 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>

Metodi di selezione ottimizzati

I metodi SelectChildren, SelectAncestors e SelectDescendants della classe XPathNavigator rappresentano le espressioni XPath comunemente usate per recuperare nodi figlio, discendente e progenitore. Questi metodi consentono di ottimizzare le prestazioni e sono più veloci delle espressioni XPath corrispondenti. I metodi SelectChildren, SelectAncestors e SelectDescendants consentono di selezionare i nodi progenitore, figlio e discendente in base a un valore XPathNodeType o al nome locale e all'URI dello spazio dei nomi dei nodi da selezionare. I nodi progenitore, figlio e discendente vengono restituiti in un oggetto XPathNodeIterator.

Vedi anche