XPathNavigator.Evaluate Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Évalue l'expression XPath spécifiée et retourne le résultat typé.
Surcharges
Evaluate(String) |
Évalue l'expression XPath spécifiée et retourne le résultat typé. |
Evaluate(XPathExpression) |
Évalue XPathExpression spécifiée 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 trouver les préfixes d'espace de noms dans l'expression XPath. |
Evaluate(XPathExpression, XPathNodeIterator) |
Utilise le contexte fourni pour évaluer le XPathExpression et retourne le résultat typé. |
Evaluate(String)
É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). Ceci mappe aux objets Boolean, Double, String ou XPathNodeIterator, respectivement.
Exceptions
Le type de retour de l'expression XPath est un ensemble de nœuds.
L’expression XPath n’est pas valide.
Exemples
L’exemple suivant évalue une expression XPath et retourne un Double.
XPathDocument^ document = gcnew 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());
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 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>
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");
Notes
Les fonctions XPath position() et last(), sauf si elles sont utilisées comme prédicat dans une étape d’emplacement, nécessitent une référence à un jeu 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)
Évalue XPathExpression spécifiée 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
Élément XPathExpression qui peut être évalué.
Retours
Résultat de l'expression (booléen, nombre, chaîne ou jeu de nœuds). Ceci mappe aux objets Boolean, Double, String ou XPathNodeIterator, respectivement.
Exceptions
Le type de retour de l'expression XPath est un ensemble de nœuds.
L’expression XPath n’est pas valide.
Exemples
L’exemple suivant évalue une XPathExpression valeur et retourne un Double.
XPathDocument^ document = gcnew 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());
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 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>
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);
Notes
Les fonctions XPath position() et last(), sauf si elles sont utilisées comme prédicat dans une étape d’emplacement, nécessitent une référence à un jeu 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)
Évalue l'expression XPath spécifiée et retourne le résultat typé, à l'aide de l'objet IXmlNamespaceResolver spécifié pour trouver 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 permettant de trouver 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). Ceci mappe aux objets Boolean, Double, String ou XPathNodeIterator, respectivement.
Exceptions
Le type de retour de l'expression XPath est un ensemble de nœuds.
L’expression XPath n’est pas valide.
Exemples
L’exemple suivant évalue une expression XPath et retourne une Double utilisation de l’objet XmlNamespaceManager spécifié pour résoudre les préfixes d’espace de noms dans l’expression XPath.
XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();
XmlNamespaceManager^ manager = gcnew 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());
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 fichier contosoBooks.xml
comme 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);
Notes
Les fonctions XPath position() et last(), sauf si elles sont utilisées comme prédicat dans une étape d’emplacement, nécessitent une référence à un jeu 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)
Utilise le contexte fourni pour évaluer le XPathExpression 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
Élément XPathExpression qui peut être évalué.
- context
- XPathNodeIterator
XPathNodeIterator qui pointe vers l'ensemble des nœuds sélectionnés auquel doit s'appliquer l'évaluation.
Retours
Résultat de l'expression (booléen, nombre, chaîne ou jeu de nœuds). Ceci mappe aux objets Boolean, Double, String ou XPathNodeIterator, respectivement.
Exceptions
Le type de retour de l'expression XPath est un ensemble 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 du Current XPathNodeIterator nœud de contexte.
XPathDocument^ document = gcnew 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());
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 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>
Remarques
L’expression est évaluée à l’aide du Current nœud du XPathNodeIterator nœud de contexte. Si context
c’est null
le cas, 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 :
L'argument
context
a la valeurnull
.MoveNext n’a pas été appelé sur le XPathNodeIterator.
É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.