Compartir por


XPathNavigator.Evaluate Método

Definición

Evalúa la expresión XPath especificada y devuelve el resultado con tipo.

Sobrecargas

Nombre Description
Evaluate(String)

Evalúa la expresión XPath especificada y devuelve el resultado con tipo.

Evaluate(XPathExpression)

Evalúa y XPathExpression devuelve el resultado con tipo.

Evaluate(String, IXmlNamespaceResolver)

Evalúa la expresión XPath especificada y devuelve el resultado con tipo, utilizando el IXmlNamespaceResolver objeto especificado para resolver los prefijos de espacio de nombres en la expresión XPath.

Evaluate(XPathExpression, XPathNodeIterator)

Usa el contexto proporcionado para evaluar y XPathExpressiondevuelve el resultado con tipo.

Evaluate(String)

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

Evalúa la expresión XPath especificada y devuelve el resultado con tipo.

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

Parámetros

xpath
String

Cadena que representa una expresión XPath que se puede evaluar.

Devoluciones

Resultado de la expresión (booleano, número, cadena o conjunto de nodos). Esto se asigna a Booleanlos objetos , Double, Stringo XPathNodeIterator respectivamente.

Excepciones

El tipo de valor devuelto de la expresión XPath es un conjunto de nodos.

La expresión XPath no es válida.

Ejemplos

En el ejemplo siguiente se evalúa una expresión XPath y se devuelve 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())

En el ejemplo se toma el books.xml archivo como entrada.

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

Comentarios

El siguiente código de C# convierte el Price/text() nodo en un número, lo multiplica por 10 y devuelve el valor resultante.

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

Nota:

Las funciones XPath position() y last(), a menos que se usen como predicado en un paso de ubicación, requieran una referencia a un conjunto de nodos para evaluarse. En este caso, debe usar la sobrecarga que toma como XPathNodeIterator argumento; de lo contrario, position() y last() devuelven 0.

Este método no tiene ningún efecto en el estado de XPathNavigator.

Consulte también

Se aplica a

Evaluate(XPathExpression)

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

Evalúa y XPathExpression devuelve el resultado con tipo.

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

Parámetros

expr
XPathExpression

que XPathExpression se puede evaluar.

Devoluciones

Resultado de la expresión (booleano, número, cadena o conjunto de nodos). Esto se asigna a Booleanlos objetos , Double, Stringo XPathNodeIterator respectivamente.

Excepciones

El tipo de valor devuelto de la expresión XPath es un conjunto de nodos.

La expresión XPath no es válida.

Ejemplos

En el ejemplo siguiente se evalúa un XPathExpression objeto y se devuelve 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())

En el ejemplo se toma el books.xml archivo como entrada.

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

Comentarios

El siguiente código de C# devuelve un número después de convertir el Price/text() nodo en un número y multiplicar el valor en 10.

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

Nota:

Las funciones XPath position() y last(), a menos que se usen como predicado en un paso de ubicación, requieran una referencia a un conjunto de nodos para evaluarse. En este caso, debe usar la sobrecarga que toma como XPathNodeIterator argumento; de lo contrario, position() y last() devuelven 0.

Este método no tiene ningún efecto en el estado de XPathNavigator.

Consulte también

Se aplica a

Evaluate(String, IXmlNamespaceResolver)

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

Evalúa la expresión XPath especificada y devuelve el resultado con tipo, utilizando el IXmlNamespaceResolver objeto especificado para resolver los prefijos de espacio de nombres en la expresión 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

Parámetros

xpath
String

Cadena que representa una expresión XPath que se puede evaluar.

resolver
IXmlNamespaceResolver

Objeto IXmlNamespaceResolver utilizado para resolver prefijos de espacio de nombres en la expresión XPath.

Devoluciones

Resultado de la expresión (booleano, número, cadena o conjunto de nodos). Esto se asigna a Booleanlos objetos , Double, Stringo XPathNodeIterator respectivamente.

Excepciones

El tipo de valor devuelto de la expresión XPath es un conjunto de nodos.

La expresión XPath no es válida.

Ejemplos

En el ejemplo siguiente se evalúa una expresión XPath y se devuelve un Double utilizando el XmlNamespaceManager objeto especificado para resolver los prefijos de espacio de nombres en la expresión 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())

En el ejemplo se toma el contosoBooks.xml archivo como entrada.

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

Comentarios

El siguiente código de C# devuelve un número después de convertir el Price/text() nodo en un número y multiplicar el valor en 10.

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

Nota:

Las funciones XPath position() y last(), a menos que se usen como predicado en un paso de ubicación, requieran una referencia a un conjunto de nodos para evaluarse. En este caso, debe usar la sobrecarga que toma como XPathNodeIterator argumento; de lo contrario, position() y last() devuelven 0.

Este método no tiene ningún efecto en el estado de XPathNavigator.

Se aplica a

Evaluate(XPathExpression, XPathNodeIterator)

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

Usa el contexto proporcionado para evaluar y XPathExpressiondevuelve el resultado con tipo.

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

Parámetros

expr
XPathExpression

que XPathExpression se puede evaluar.

context
XPathNodeIterator

que XPathNodeIterator apunta al conjunto de nodos seleccionado en el que se va a realizar la evaluación.

Devoluciones

Resultado de la expresión (booleano, número, cadena o conjunto de nodos). Esto se asigna a Booleanlos objetos , Double, Stringo XPathNodeIterator respectivamente.

Excepciones

El tipo de valor devuelto de la expresión XPath es un conjunto de nodos.

La expresión XPath no es válida.

Ejemplos

En el ejemplo siguiente se evalúa un XPathExpression objeto y se devuelve mediante Double el Current nodo de como nodo de XPathNodeIterator contexto.

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())

En el ejemplo se toma el books.xml archivo como entrada.

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

Comentarios

La expresión se evalúa utilizando el Current nodo de como nodo de XPathNodeIterator contexto. Si context es null, el nodo en el XPathNavigator que se coloca actualmente se usa como nodo de contexto.

Las funciones position() y last(), a menos que se usen como predicado en un paso de ubicación, siempre devuelvan 0 en las condiciones siguientes:

Dado que las funciones position() y last() funcionan en el nodo actual, no debe usar la Current propiedad para alejarse del conjunto de nodos seleccionado. Esto podría invalidar el estado de .XPathNavigator

Este método no tiene ningún efecto en el estado de XPathNavigator.

Se aplica a