Obliczanie wyrażeń XPath przy użyciu klasy XPathNavigator
Klasa XPathNavigator udostępnia metodę Evaluate oceniania wyrażenia XPath. Metoda Evaluate przyjmuje wyrażenie XPath, oblicza je i zwraca typ XPath W3C typu wartość logiczna, liczba, ciąg lub zestaw węzłów na podstawie wyniku wyrażenia XPath.
Metoda Evaluate
Metoda Evaluate przyjmuje wyrażenie XPath, oblicza je i zwraca wpisany wynik wartości logicznej (), Liczba (Boolean), Ciąg (DoubleString) lub Zestaw węzłów (XPathNodeIterator). Na przykład Evaluate można użyć metody w metodzie matematycznej. Poniższy przykładowy kod oblicza łączną cenę wszystkich książek w books.xml
pliku.
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim query As XPathExpression = navigator.Compile("sum(//price/text())")
Dim total As Double = CType(navigator.Evaluate(query), Double)
Console.WriteLine(total)
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathExpression query = navigator.Compile("sum(//price/text())");
Double total = (Double)navigator.Evaluate(query);
Console.WriteLine(total);
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>
pozycja i ostatnie funkcje
Metoda Evaluate jest przeciążona. Evaluate Jedna z metod przyjmuje XPathNodeIterator obiekt jako parametr. Ta konkretna Evaluate metoda jest identyczna z Evaluate metodą, która przyjmuje tylko XPathExpression obiekt jako parametr, z tą różnicą, że umożliwia zestawowi węzłów określenie bieżącego kontekstu w celu przeprowadzenia oceny. Ten kontekst jest wymagany dla środowiska XPath position()
i last()
funkcji, ponieważ są one względem bieżącego węzła kontekstu. Jeśli nie jest używany jako predykat w kroku lokalizacji, position()
funkcje i last()
wymagają odwołania do zestawu węzłów w celu oceny w inny sposób, position
funkcje i last
zwracają wartość 0
.
Zobacz też
- XmlDocument
- XPathDocument
- XPathNavigator
- Przetwarzanie danych XML przy użyciu modelu danych XPath
- Wybieranie danych XML przy użyciu klasy XPathNavigator
- Dopasowywanie węzłów przy użyciu klasy XPathNavigator
- Typy węzłów rozpoznawanych w zapytaniach XPath
- Zapytania XPath i przestrzenie nazw
- Skompilowane wyrażenia XPath