Freigeben über


Auswählen von XML-Daten mit 'XPathNavigator'

Die XPathNavigator-Klasse stellt eine Gruppe von Methoden bereit, mit denen eine Gruppe von Knoten in einem XPathDocument-Objekt oder einem XmlDocument-Objekt mithilfe eines XPath-Ausdrucks ausgewählt werden können. Sobald die Knoten ausgewählt sind, können die ausgewählten Knoten durchlaufen werden.

Auswahlmethoden von XPathNavigator

Die XPathNavigator-Klasse stellt eine Gruppe von Methoden bereit, mit denen eine Gruppe von Knoten in einem XPathDocument-Objekt oder einem XmlDocument-Objekt mithilfe eines XPath-Ausdrucks ausgewählt werden können. Die XPathNavigator-Klasse stellt außerdem eine Gruppe optimierter Methoden bereit, mit denen übergeordnete, direkt untergeordnete und indirekt untergeordnete Knoten schneller als bei Verwendung eines XPath-Ausdrucks ausgewählt werden können. Die ausgewählte Knotengruppe wird in einem XPathNodeIterator-Objekt oder (falls es sich um nur einen ausgewählten Knoten handelt) in einem XPathNavigator-Objekt zurückgegeben.

Auswählen von Knoten mithilfe von XPath-Ausdrücken

Verwenden Sie eine der folgenden Auswahlmethoden, um eine Gruppe von Knoten mithilfe eines XPath-Ausdrucks auszuwählen.

Bei einem Aufruf geben diese Methoden eine Knotengruppe zurück, die Sie mithilfe eines XPathNodeIterator-Objekts oder (falls es sich um nur einen ausgewählten Knoten handelt) eines XPathNavigator-Objekts frei durchsuchen können.

Das Navigieren mithilfe eines XPathNodeIterator-Objekts hat keine Auswirkungen auf die Position des XPathNavigator-Objekts, das zum Erstellen verwendet wurde. Das von der XPathNavigator-Methode zurückgegebene SelectSingleNode-Objekt wird auf dem einzelnen zurückgegebenen Knoten positioniert und hat keine Auswirkung auf die Position des XPathNavigator-Objekts, mit dem es erstellt wurde.

Im folgenden Beispiel wird das Erstellen eines XPathNavigator-Objekts aus einem XPathDocument-Objekts veranschaulicht. Außerdem werden die Verwendung der Select-Methode zum Auswählen der Knoten im XPathDocument-Objekt sowie die Verwendung des XPathNodeIterator-Objekts zum Durchlaufen der ausgewählten Knoten dargestellt.

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

In diesem Beispiel wird die Datei books.xml als Eingabe verwendet.

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

Optimierte Auswahlmethoden

Die Methoden SelectChildren, SelectAncestors und SelectDescendants der XPathNavigator-Klasse stellen XPath-Ausdrücke dar, mit denen normalerweise direkt untergeordnete sowie indirekt untergeordnete und übergeordnete Knoten abgerufen werden. Diese Methoden tragen zur Leistungsoptimierung bei und sind schneller als die entsprechenden XPath-Ausdrücke. Die Methoden SelectChildren, SelectAncestors und SelectDescendants wählen übergeordnete, direkt untergeordnete und indirekt untergeordnete Knoten auf der Grundlage eines XPathNodeType-Werts oder des lokalen Namens und des Namespace-URIs der auszuwählenden Knoten aus. Die ausgewählten übergeordneten, direkt untergeordneten und indirekt untergeordneten Knoten werden in einem XPathNodeIterator-Objekt zurückgegeben.

Siehe auch