Udostępnij za pośrednictwem


Wybieranie danych XML przy użyciu klasy XPathNavigator

Klasa XPathNavigator udostępnia zestaw metod używanych do wybierania zestawu węzłów w XPathDocument obiekcie lub XmlDocument przy użyciu wyrażenia XPath. Po wybraniu tej opcji można wykonać iterację po wybranym zestawie węzłów.

Metody wyboru XPathNavigator

Klasa XPathNavigator udostępnia zestaw metod używanych do wybierania zestawu węzłów w XPathDocument obiekcie lub XmlDocument przy użyciu wyrażenia XPath. Klasa XPathNavigator udostępnia również zestaw zoptymalizowanych metod wybierania węzłów nadrzędnych, podrzędnych i podrzędnych szybciej niż za pomocą wyrażenia XPath. Wybrany zestaw węzłów jest zwracany w XPathNodeIterator obiekcie lub XPathNavigator obiekcie w przypadku jednego wybranego węzła.

Wybieranie węzłów przy użyciu wyrażeń XPath

Aby wybrać zestaw węzłów przy użyciu wyrażenia XPath, użyj jednej z następujących metod wyboru.

Po wywołaniu te metody zwracają zestaw węzłów, które można swobodnie nawigować przy użyciu XPathNodeIterator obiektu lub XPathNavigator obiektu w przypadku pojedynczego wybranego węzła.

Nawigowanie po XPathNodeIterator obiekcie nie ma wpływu na położenie obiektu użytego XPathNavigator do jego utworzenia. XPathNavigator Obiekt zwrócony z SelectSingleNode metod jest umieszczony w pojedynczym zwracanym węźle, a także nie wpływa na położenie XPathNavigator obiektu użytego do jego utworzenia.

W poniższym przykładzie pokazano tworzenie XPathNavigator obiektu z XPathDocument obiektu, użycie Select metody do wybierania węzłów w XPathDocument obiekcie oraz użycie XPathNodeIterator obiektu do iterowania w wybranych węzłach.

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

W przykładzie plik jest pobierany books.xml jako dane wejściowe.

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

Zoptymalizowane metody wyboru

Metody SelectChildrenXPathNavigator , SelectAncestorsi SelectDescendants klasy reprezentują wyrażenia XPath często używane do pobierania węzłów podrzędnych, potomnych i węzłów nadrzędnych. Te metody są zoptymalizowane pod kątem wydajności i są szybsze niż odpowiadające im wyrażenia XPath. Metody SelectChildren, SelectAncestorsi SelectDescendants wybierają węzły nadrzędne, podrzędne i podrzędne na XPathNodeType podstawie wartości lub lokalnego identyfikatora URI przestrzeni nazw węzłów do wybrania. Wybrany element nadrzędny, podrzędny i węzły podrzędne są zwracane w XPathNodeIterator obiekcie.

Zobacz też