Partager via


Évaluation d’expressions XPath à l’aide de XPathNavigator

La classe XPathNavigator fournit la méthode Evaluate permettant d’évaluer une expression XPath. La méthode Evaluate prend une expression XPath, l’évalue et retourne le type XPath W3C booléen, nombre, chaîne ou collection de nœuds selon le résultat de l’expression XPath.

Méthode d'évaluation

La méthode Evaluate prend une expression XPath, l’évalue et retourne un résultat typé tel que booléen (Boolean), nombre (Double), chaîne (String) ou collection de nœuds (XPathNodeIterator). Par exemple, la méthode Evaluate peut être utilisée dans une méthode mathématique. L'exemple de code suivant calcule le prix total de tous les livres du fichier 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);  

L'exemple prend le fichier books.xml comme entrée.

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

Fonctions position et last

La méthode Evaluate est surchargée. L'une des méthodes Evaluate prend un objet XPathNodeIterator comme paramètre. Cette méthode Evaluate particulière est identique à la méthode Evaluate qui ne prend qu'un objet XPathExpression comme paramètre, si ce n'est qu'elle permet à un argument node set de spécifier le contexte actuel sur lequel effectuer l'évaluation. Ce contexte est obligatoire pour les fonctions XPath position() et last() car celles-ci se rapportent au nœud de contexte actuel. À moins d’être utilisées comme prédicats dans une étape de localisation, l’évaluation des fonctions position() et last() nécessite une référence à une collection de nœuds, sinon les fonctions position et last retournent 0.

Voir aussi