Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Třída XPathNavigator poskytuje metodu Evaluate pro vyhodnocení výrazu XPath. Metoda Evaluate přebírá výraz XPath, vyhodnotí ho a vrátí typ W3C XPath typu Boolean, Number, String nebo Node Set na základě výsledku výrazu XPath.
Metoda Evaluate
Metoda Evaluate přebírá výraz XPath, vyhodnotí ho a vrátí typový výsledek logické hodnoty (Boolean), čísla (Double), řetězce (String) nebo sady uzlů (XPathNodeIterator). Například metodu Evaluate lze použít v matematické metodě. Následující příklad kódu vypočítá celkovou cenu všech knih v books.xml souboru.
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);
Příklad přebírá books.xml soubor jako vstup.
<?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>
Funkce position a last
Metoda Evaluate je přetížena. Jedna z Evaluate metod přebírá XPathNodeIterator objekt jako parametr. Tato konkrétní Evaluate metoda je identická s Evaluate metodou XPathExpression , která jako parametr přebírá pouze objekt, s tím rozdílem, že umožňuje argumentu sady uzlů určit aktuální kontext k provedení vyhodnocení. Tento kontext je nutný pro funkce XPath position() a last(), protože jsou relativní vzhledem k aktuálnímu kontextovému uzlu. Pokud nejsou použity jako predikát v kroku umístění, funkce position() a last() vyžadují odkaz na sadu uzlů, aby mohly být vyhodnoceny. Jinak funkce position a last vrátí 0.