Valutazione di espressioni XPath con XPathNavigator
La classe XPathNavigator fornisce il metodo Evaluate per valutare un'espressione XPath. Il metodo Evaluate rileva un'espressione XPath, la valuta e restituisce un W3C XPath di tipo booleano, numero, stringa o set di nodi, in base al risultato dell'espressione XPath.
Metodo Evaluate
Il metodo Evaluate rileva un'espressione XPath, la valuta e restituisce un risultato di tipo booleano(Boolean), numero (Double), stringa (String) o set di nodi (XPathNodeIterator). È possibile ad esempio utilizzare il metodo Evaluate in un metodo matematico. Nell'esempio di codice seguente viene calcolato il prezzo totale di tutti i libri nel file books.xml.
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);
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>
Funzioni position e last
Il metodo Evaluate è un metodo di overload. Uno dei metodi Evaluate accetta come parametro un oggetto XPathNodeIterator. Questo specifico metodo Evaluate è identico al metodo Evaluate che accetta solo un oggetto XPathExpression come parametro, ad eccezione del fatto che consente a un argomento set di nodi di specificare il contesto corrente in base al quale eseguire la valutazione. Questo contesto è necessario per le funzioni position() e last() di XPath in quanto sono relative al nodo di contesto corrente. A meno che non vengano utilizzate come predicato in una fase di posizione, per la valutazione delle funzioni position() e last() è necessario specificare un riferimento a un set di nodi, altrimenti le funzioni position e last restituiscono 0.
Vedere anche
Riferimenti
Concetti
Elaborazione di dati XML con il modello di dati XPath
Selezione di dati XML con XPathNavigator
Corrispondenza di nodi utilizzando XPathNavigator