XPathNavigator.Evaluate Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Valuta l'espressione XPath specificata e restituisce il risultato tipizzato.
Overload
Evaluate(String) |
Valuta l'espressione XPath specificata e restituisce il risultato tipizzato. |
Evaluate(XPathExpression) |
Valuta la classe XPathExpression e restituisce il risultato tipizzato. |
Evaluate(String, IXmlNamespaceResolver) |
Valuta l'espressione XPath specificata e restituisce il risultato tipizzato utilizzando l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi degli spazi dei nomi contenuti nell'espressione XPath. |
Evaluate(XPathExpression, XPathNodeIterator) |
Utilizza il contesto specificato per valutare l'oggetto XPathExpression e restituisce il risultato tipizzato. |
Evaluate(String)
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
Valuta l'espressione XPath specificata e restituisce il risultato tipizzato.
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
Parametri
- xpath
- String
Stringa che rappresenta un'espressione XPath valutabile.
Restituisce
Risultato dell'espressione (valore booleano, numero, stringa o set di nodi). Mappa rispettivamente agli oggetti Boolean, Double, String o XPathNodeIterator.
Eccezioni
Il tipo restituito dell'espressione XPath è un insieme di nodi.
L’espressione XPath non è valida.
Esempio
Nell'esempio seguente viene valutata un'espressione XPath e restituisce un Doubleoggetto .
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())
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>
Commenti
Il codice C# seguente converte il Price/text()
nodo in un numero, lo moltiplica per 10 e restituisce il valore risultante.
nav.Evaluate("Price/text()*10");
Nota
Le funzioni XPath position() e last(), a meno che non venga usato come predicato in un passaggio del percorso, richiedono un riferimento a un set di nodi per essere valutato. In questo caso, è necessario usare l'overload che accetta XPathNodeIterator come argomento; in caso contrario, posizione() e last() restituiscono 0.
Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.
Vedi anche
Si applica a
Evaluate(XPathExpression)
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
Valuta la classe XPathExpression e restituisce il risultato tipizzato.
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
Parametri
- expr
- XPathExpression
Oggetto XPathExpression che può essere valutato.
Restituisce
Risultato dell'espressione (valore booleano, numero, stringa o set di nodi). Mappa rispettivamente agli oggetti Boolean, Double, String o XPathNodeIterator.
Eccezioni
Il tipo restituito dell'espressione XPath è un insieme di nodi.
L’espressione XPath non è valida.
Esempio
Nell'esempio seguente viene valutato un XPathExpression oggetto e viene restituito un Doubleoggetto .
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())
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>
Commenti
Il codice C# seguente restituisce un numero dopo aver convertito il Price/text()
nodo in un numero e moltiplicando il valore per 10.
XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);
Nota
Le funzioni XPath position() e last(), a meno che non venga usato come predicato in un passaggio del percorso, richiedono un riferimento a un set di nodi per essere valutato. In questo caso, è necessario usare l'overload che accetta XPathNodeIterator come argomento; in caso contrario, posizione() e last() restituiscono 0.
Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.
Vedi anche
Si applica a
Evaluate(String, IXmlNamespaceResolver)
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
Valuta l'espressione XPath specificata e restituisce il risultato tipizzato utilizzando l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi degli spazi dei nomi contenuti nell'espressione 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
Parametri
- xpath
- String
Stringa che rappresenta un'espressione XPath valutabile.
- resolver
- IXmlNamespaceResolver
Oggetto IXmlNamespaceResolver utilizzato per la risoluzione dei prefissi degli spazi dei nomi contenuti nell'espressione XPath.
Restituisce
Risultato dell'espressione (valore booleano, numero, stringa o set di nodi). Mappa rispettivamente agli oggetti Boolean, Double, String o XPathNodeIterator.
Eccezioni
Il tipo restituito dell'espressione XPath è un insieme di nodi.
L’espressione XPath non è valida.
Esempio
Nell'esempio seguente viene valutata un'espressione XPath e viene restituito un Double oggetto usando l'oggetto XmlNamespaceManager specificato per risolvere i prefissi dello spazio dei nomi nell'espressione 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())
Nell'esempio il file contosoBooks.xml
viene considerato come input.
<?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>
Commenti
Il codice C# seguente restituisce un numero dopo aver convertito il Price/text()
nodo in un numero e moltiplicando il valore per 10.
XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);
Nota
Le funzioni XPath position() e last(), a meno che non venga usato come predicato in un passaggio del percorso, richiedono un riferimento a un set di nodi per essere valutato. In questo caso, è necessario usare l'overload che accetta XPathNodeIterator come argomento; in caso contrario, posizione() e last() restituiscono 0.
Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.
Si applica a
Evaluate(XPathExpression, XPathNodeIterator)
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
- Source:
- XPathNavigator.cs
Utilizza il contesto specificato per valutare l'oggetto XPathExpression e restituisce il risultato tipizzato.
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
Parametri
- expr
- XPathExpression
Oggetto XPathExpression che può essere valutato.
- context
- XPathNodeIterator
Oggetto XPathNodeIterator che punta all'insieme di nodi selezionato su cui deve essere eseguita la valutazione.
Restituisce
Risultato dell'espressione (valore booleano, numero, stringa o set di nodi). Mappa rispettivamente agli oggetti Boolean, Double, String o XPathNodeIterator.
Eccezioni
Il tipo restituito dell'espressione XPath è un insieme di nodi.
L’espressione XPath non è valida.
Esempio
Nell'esempio XPathNodeIterator seguente viene valutato un oggetto XPathExpression e viene restituito un Double oggetto usando il Current nodo di come nodo di contesto.
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())
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>
Commenti
L'espressione viene valutata usando il Current nodo dell'oggetto XPathNodeIterator come nodo di contesto. Se context
è null
, il nodo in cui è XPathNavigator attualmente posizionato viene usato come nodo di contesto.
Le funzioni position() e last(), a meno che non venga usato come predicato in un passaggio della posizione, restituire sempre 0 in base alle condizioni seguenti:
Il valore dell'argomento
context
ènull
.MoveNext non è stato chiamato sull'oggetto XPathNodeIterator.
Poiché le funzioni position() e last() funzionano nel nodo corrente, non è consigliabile usare la Current proprietà per allontanarsi dal set di nodi selezionato. Questo potrebbe invalidare lo stato dell'oggetto XPathNavigator.
Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.
Si applica a
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per