Condividi tramite


XPathNavigator.Evaluate Metodo

Definizione

Valuta l'espressione XPath specificata e restituisce il risultato tipizzato.

Overload

Nome Descrizione
Evaluate(String)

Valuta l'espressione XPath specificata e restituisce il risultato tipizzato.

Evaluate(XPathExpression)

Valuta e XPathExpression 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 dello spazio dei nomi nell'espressione XPath.

Evaluate(XPathExpression, XPathNodeIterator)

Usa il contesto fornito per valutare e XPathExpressionrestituisce il risultato tipizzato.

Evaluate(String)

Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
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 che può essere valutata.

Restituisce

Risultato dell'espressione (booleano, numero, stringa o set di nodi). Viene eseguito il mapping rispettivamente a Booleanoggetti , DoubleString, o XPathNodeIterator .

Eccezioni

Il tipo restituito dell'espressione XPath è un set di nodi.

L'espressione XPath non è valida.

Esempio

Nell'esempio seguente viene valutata un'espressione XPath e viene restituito un oggetto 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'esempio accetta il books.xml file 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");

Annotazioni

Le funzioni XPath position() e last(), a meno che non vengano usate come predicato in un passaggio di posizione, richiedono un riferimento a un set di nodi per la valutazione. In questo caso, è necessario utilizzare l'overload che accetta come XPathNodeIterator argomento; in caso contrario, position() e last() restituiscono 0.

Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.

Vedi anche

Si applica a

Evaluate(XPathExpression)

Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs

Valuta e XPathExpression 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 (booleano, numero, stringa o set di nodi). Viene eseguito il mapping rispettivamente a Booleanoggetti , DoubleString, o XPathNodeIterator .

Eccezioni

Il tipo restituito dell'espressione XPath è un set di nodi.

L'espressione XPath non è valida.

Esempio

Nell'esempio seguente viene valutato un oggetto XPathExpression e viene restituito un oggetto 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'esempio accetta il books.xml file 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 la conversione del Price/text() nodo in un numero e la moltiplicazione del valore per 10.

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

Annotazioni

Le funzioni XPath position() e last(), a meno che non vengano usate come predicato in un passaggio di posizione, richiedono un riferimento a un set di nodi per la valutazione. In questo caso, è necessario utilizzare l'overload che accetta come XPathNodeIterator argomento; in caso contrario, position() e last() restituiscono 0.

Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.

Vedi anche

Si applica a

Evaluate(String, IXmlNamespaceResolver)

Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs

Valuta l'espressione XPath specificata e restituisce il risultato tipizzato, utilizzando l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi dello spazio dei nomi 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 che può essere valutata.

resolver
IXmlNamespaceResolver

Oggetto IXmlNamespaceResolver utilizzato per risolvere i prefissi dello spazio dei nomi nell'espressione XPath.

Restituisce

Risultato dell'espressione (booleano, numero, stringa o set di nodi). Viene eseguito il mapping rispettivamente a Booleanoggetti , DoubleString, o XPathNodeIterator .

Eccezioni

Il tipo restituito dell'espressione XPath è un set di nodi.

L'espressione XPath non è valida.

Esempio

Nell'esempio seguente viene valutata un'espressione XPath e viene restituito un Double oggetto utilizzando l'oggetto XmlNamespaceManager specificato per risolvere i prefissi dello spazio dei nomi nell'espressione 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'esempio accetta il contosoBooks.xml file 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 la conversione del Price/text() nodo in un numero e la moltiplicazione del valore per 10.

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

Annotazioni

Le funzioni XPath position() e last(), a meno che non vengano usate come predicato in un passaggio di posizione, richiedono un riferimento a un set di nodi per la valutazione. In questo caso, è necessario utilizzare l'overload che accetta come XPathNodeIterator argomento; in caso contrario, position() e last() restituiscono 0.

Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.

Si applica a

Evaluate(XPathExpression, XPathNodeIterator)

Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs
Origine:
XPathNavigator.cs

Usa il contesto fornito per valutare e XPathExpressionrestituisce 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 al set di nodi selezionato su cui deve essere eseguita la valutazione.

Restituisce

Risultato dell'espressione (booleano, numero, stringa o set di nodi). Viene eseguito il mapping rispettivamente a Booleanoggetti , DoubleString, o XPathNodeIterator .

Eccezioni

Il tipo restituito dell'espressione XPath è un set di nodi.

L'espressione XPath non è valida.

Esempio

L'esempio seguente valuta un oggetto XPathExpression e restituisce un Double oggetto utilizzando il Current nodo di XPathNodeIterator come nodo di contesto.

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'esempio accetta il books.xml file 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 di 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 vengano usate come predicato in un passaggio di posizione, restituiscono sempre 0 nelle condizioni seguenti:

Poiché le funzioni position() e last() funzionano sul nodo corrente, non è consigliabile usare la Current proprietà per allontanarsi dal set di nodi selezionato. Ciò potrebbe invalidare lo stato dell'oggetto XPathNavigator.

Questo metodo non ha alcun effetto sullo stato dell'oggetto XPathNavigator.

Si applica a