Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método XPathNavigator.Evaluate (String, IXmlNamespaceResolver)

 

Publicado: noviembre de 2016

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

Espacio de nombres:   System.Xml.XPath
Ensamblado:  System.Xml (en System.Xml.dll)

public virtual object Evaluate(
	string xpath,
	IXmlNamespaceResolver resolver
)

Parámetros

xpath
Type: System.String

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

resolver
Type: System.Xml.IXmlNamespaceResolver

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

Valor devuelto

Type: System.Object

Resultado de la expresión (valor booleano, número, cadena o conjunto de nodos). Se asigna a los objetos Boolean, Double, String o XPathNodeIterator, respectivamente.

Exception Condition
ArgumentException

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

XPathException

La expresión XPath no es válida.

The following C# code returns a number after converting the Price/text() node to a number and multiplying the value by 10.

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

The XPath position() and last() functions, unless used as a predicate in a location step, require a reference to a node set in order to be evaluated. In this case, you must use the overload which takes an T:System.Xml.XPath.XPathNodeIterator as an argument; otherwise, position() and last() return 0.

This method has no effect on the state of the T:System.Xml.XPath.XPathNavigator.

The following example evaluates an XPath expression and returns a T:System.Double using the T:System.Xml.XmlNamespaceManager object specified to resolve namespace prefixes in the XPath expression.

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

The example takes the contosoBooks.xml file as an 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>

.NET Framework
Disponible desde 2.0
Silverlight
Disponible desde 4.0
Volver al principio
Mostrar: