Partager via


XPathNavigator.Evaluate Méthode

Définition

Évalue l’expression XPath spécifiée et retourne le résultat typé.

Surcharges

Nom Description
Evaluate(String)

Évalue l’expression XPath spécifiée et retourne le résultat typé.

Evaluate(XPathExpression)

Évalue le XPathExpression résultat typé et retourne le résultat typé.

Evaluate(String, IXmlNamespaceResolver)

Évalue l’expression XPath spécifiée et retourne le résultat typé, à l’aide de l’objet IXmlNamespaceResolver spécifié pour résoudre les préfixes d’espace de noms dans l’expression XPath.

Evaluate(XPathExpression, XPathNodeIterator)

Utilise le contexte fourni pour évaluer le XPathExpressionrésultat et retourne le résultat typé.

Evaluate(String)

Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs

Évalue l’expression XPath spécifiée et retourne le résultat typé.

public:
 virtual System::Object ^ Evaluate(System::String ^ xpath);
public virtual object Evaluate(string xpath);
abstract member Evaluate : string -> obj
override this.Evaluate : string -> obj
Public Overridable Function Evaluate (xpath As String) As Object

Paramètres

xpath
String

Chaîne représentant une expression XPath qui peut être évaluée.

Retours

Résultat de l’expression (booléen, nombre, chaîne ou jeu de nœuds). Cela est mappé à , Doubleou XPathNodeIteratorStringaux Booleanobjets respectivement.

Exceptions

Le type de retour de l’expression XPath est un jeu de nœuds.

L’expression XPath n’est pas valide.

Exemples

L’exemple suivant évalue une expression XPath et retourne un Double.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

Double total = (double)navigator.Evaluate("sum(descendant::book/price)");
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim total As Double = CType(navigator.Evaluate("sum(descendant::book/price)"), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

L’exemple prend le books.xml fichier en tant qu’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>

Remarques

Le code C# suivant convertit le Price/text() nœud en nombre, le multiplie par 10 et retourne la valeur résultante.

nav.Evaluate("Price/text()*10");

Note

Les fonctions position() et last() XPath, sauf si elles sont utilisées comme prédicat dans une étape d’emplacement, nécessitent une référence à un ensemble de nœuds afin d’être évaluées. Dans ce cas, vous devez utiliser la surcharge qui prend un XPathNodeIterator argument ; sinon, position() et last() retournent 0.

Cette méthode n’a aucun effet sur l’état du XPathNavigator.

Voir aussi

S’applique à

Evaluate(XPathExpression)

Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs

Évalue le XPathExpression résultat typé et retourne le résultat typé.

public:
 virtual System::Object ^ Evaluate(System::Xml::XPath::XPathExpression ^ expr);
public virtual object Evaluate(System.Xml.XPath.XPathExpression expr);
abstract member Evaluate : System.Xml.XPath.XPathExpression -> obj
override this.Evaluate : System.Xml.XPath.XPathExpression -> obj
Public Overridable Function Evaluate (expr As XPathExpression) As Object

Paramètres

expr
XPathExpression

Qui XPathExpression peut être évalué.

Retours

Résultat de l’expression (booléen, nombre, chaîne ou jeu de nœuds). Cela est mappé à , Doubleou XPathNodeIteratorStringaux Booleanobjets respectivement.

Exceptions

Le type de retour de l’expression XPath est un jeu de nœuds.

L’expression XPath n’est pas valide.

Exemples

L’exemple suivant évalue une XPathExpression valeur et retourne un Double.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathExpression query = navigator.Compile("sum(descendant::book/price)");

Double total = (double)navigator.Evaluate(query);
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim query As XPathExpression = navigator.Compile("sum(descendant::book/price)")

Dim total As Double = CType(navigator.Evaluate(query), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

L’exemple prend le books.xml fichier en tant qu’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>

Remarques

Le code C# suivant retourne un nombre après avoir converti le Price/text() nœud en nombre et multiplié la valeur par 10.

XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);

Note

Les fonctions position() et last() XPath, sauf si elles sont utilisées comme prédicat dans une étape d’emplacement, nécessitent une référence à un ensemble de nœuds afin d’être évaluées. Dans ce cas, vous devez utiliser la surcharge qui prend un XPathNodeIterator argument ; sinon, position() et last() retournent 0.

Cette méthode n’a aucun effet sur l’état du XPathNavigator.

Voir aussi

S’applique à

Evaluate(String, IXmlNamespaceResolver)

Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs

Évalue l’expression XPath spécifiée et retourne le résultat typé, à l’aide de l’objet IXmlNamespaceResolver spécifié pour résoudre les préfixes d’espace de noms dans l’expression XPath.

public:
 virtual System::Object ^ Evaluate(System::String ^ xpath, System::Xml::IXmlNamespaceResolver ^ resolver);
public virtual object Evaluate(string xpath, System.Xml.IXmlNamespaceResolver? resolver);
public virtual object Evaluate(string xpath, System.Xml.IXmlNamespaceResolver resolver);
abstract member Evaluate : string * System.Xml.IXmlNamespaceResolver -> obj
override this.Evaluate : string * System.Xml.IXmlNamespaceResolver -> obj
Public Overridable Function Evaluate (xpath As String, resolver As IXmlNamespaceResolver) As Object

Paramètres

xpath
String

Chaîne représentant une expression XPath qui peut être évaluée.

resolver
IXmlNamespaceResolver

Objet IXmlNamespaceResolver utilisé pour résoudre les préfixes d’espace de noms dans l’expression XPath.

Retours

Résultat de l’expression (booléen, nombre, chaîne ou jeu de nœuds). Cela est mappé à , Doubleou XPathNodeIteratorStringaux Booleanobjets respectivement.

Exceptions

Le type de retour de l’expression XPath est un jeu de nœuds.

L’expression XPath n’est pas valide.

Exemples

L’exemple suivant évalue une expression XPath et retourne une utilisation de Double l’objet XmlNamespaceManager spécifié pour résoudre les préfixes d’espace de noms dans l’expression XPath.

XPathDocument document = new XPathDocument("contosoBooks.xml");
XPathNavigator navigator = document.CreateNavigator();

XmlNamespaceManager manager = new XmlNamespaceManager(navigator.NameTable);
manager.AddNamespace("bk", "http://www.contoso.com/books");

Double total = (double)navigator.Evaluate("sum(descendant::bk:book/bk:price)", manager);
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("contosoBooks.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim manager As XmlNamespaceManager = New XmlNamespaceManager(navigator.NameTable)
manager.AddNamespace("bk", "http://www.contoso.com/books")

Dim total As Double = CType(navigator.Evaluate("sum(descendant::bk:book/bk:price)", manager), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

L’exemple prend le contosoBooks.xml fichier en tant qu’entrée.

<?xml version="1.0" encoding="utf-8" ?>
<bookstore xmlns="http://www.contoso.com/books">
    <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>

Remarques

Le code C# suivant retourne un nombre après avoir converti le Price/text() nœud en nombre et multiplié la valeur par 10.

XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);

Note

Les fonctions position() et last() XPath, sauf si elles sont utilisées comme prédicat dans une étape d’emplacement, nécessitent une référence à un ensemble de nœuds afin d’être évaluées. Dans ce cas, vous devez utiliser la surcharge qui prend un XPathNodeIterator argument ; sinon, position() et last() retournent 0.

Cette méthode n’a aucun effet sur l’état du XPathNavigator.

S’applique à

Evaluate(XPathExpression, XPathNodeIterator)

Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs
Source:
XPathNavigator.cs

Utilise le contexte fourni pour évaluer le XPathExpressionrésultat et retourne le résultat typé.

public:
 virtual System::Object ^ Evaluate(System::Xml::XPath::XPathExpression ^ expr, System::Xml::XPath::XPathNodeIterator ^ context);
public virtual object Evaluate(System.Xml.XPath.XPathExpression expr, System.Xml.XPath.XPathNodeIterator? context);
public virtual object Evaluate(System.Xml.XPath.XPathExpression expr, System.Xml.XPath.XPathNodeIterator context);
abstract member Evaluate : System.Xml.XPath.XPathExpression * System.Xml.XPath.XPathNodeIterator -> obj
override this.Evaluate : System.Xml.XPath.XPathExpression * System.Xml.XPath.XPathNodeIterator -> obj
Public Overridable Function Evaluate (expr As XPathExpression, context As XPathNodeIterator) As Object

Paramètres

expr
XPathExpression

Qui XPathExpression peut être évalué.

context
XPathNodeIterator

Pointant XPathNodeIterator vers le jeu de nœuds sélectionné sur lequel l’évaluation doit être effectuée.

Retours

Résultat de l’expression (booléen, nombre, chaîne ou jeu de nœuds). Cela est mappé à , Doubleou XPathNodeIteratorStringaux Booleanobjets respectivement.

Exceptions

Le type de retour de l’expression XPath est un jeu de nœuds.

L’expression XPath n’est pas valide.

Exemples

L’exemple suivant évalue une XPathExpression valeur et retourne un Double nœud à l’aide Current du XPathNodeIterator nœud de contexte.

XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();

XPathNodeIterator nodes = navigator.Select("//book");
XPathExpression query = nodes.Current.Compile("sum(descendant::price)");

Double total = (double)navigator.Evaluate(query, nodes);
Console.WriteLine("Total price for all books: {0}", total.ToString());
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()

Dim nodes As XPathNodeIterator = navigator.Select("//book")
Dim query As XPathExpression = nodes.Current.Compile("sum(descendant::price)")

Dim total As Double = CType(navigator.Evaluate(query, nodes), Double)
Console.WriteLine("Total price for all books: {0}", total.ToString())

L’exemple prend le books.xml fichier en tant qu’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>

Remarques

L’expression est évaluée à l’aide du Current nœud du XPathNodeIterator nœud de contexte. Si context c’est nullle cas, le nœud sur lequel le XPathNavigator nœud est actuellement positionné est utilisé comme nœud de contexte.

Les fonctions position() et last(), sauf si elles sont utilisées comme prédicat dans une étape d’emplacement, retournent toujours 0 dans les conditions suivantes :

Étant donné que les fonctions position() et last() fonctionnent sur le nœud actuel, vous ne devez pas utiliser la Current propriété pour vous éloigner du jeu de nœuds sélectionné. Cela peut invalider l’état du XPathNavigator.

Cette méthode n’a aucun effet sur l’état du XPathNavigator.

S’applique à