Compartir a través de


Evaluación de expresiones XPath mediante XPathNavigator

La XPathNavigator clase proporciona el Evaluate método para evaluar una expresión XPath. El Evaluate método toma una expresión XPath, la evalúa y devuelve un tipo XPath W3C de Boolean, Number, String o Node Set en función del resultado de la expresión XPath.

Método de evaluación

El Evaluate método toma una expresión XPath, la evalúa y devuelve un resultado con tipo de Boolean (), Number (Boolean), String (DoubleString) o Node Set (XPathNodeIterator). Por ejemplo, el Evaluate método podría usarse en un método matemático. El código de ejemplo siguiente calcula el precio total de todos los libros del books.xml archivo.

Dim document As XPathDocument = New XPathDocument("books.xml")  
Dim navigator As XPathNavigator = document.CreateNavigator()  
  
Dim query As XPathExpression = navigator.Compile("sum(//price/text())")  
Dim total As Double = CType(navigator.Evaluate(query), Double)  
Console.WriteLine(total)  
XPathDocument document = new XPathDocument("books.xml");  
XPathNavigator navigator = document.CreateNavigator();  
  
XPathExpression query = navigator.Compile("sum(//price/text())");  
Double total = (Double)navigator.Evaluate(query);  
Console.WriteLine(total);  

En el ejemplo se toma el archivo books.xml 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>

Funciones position y last

El Evaluate método está sobrecargado. Uno de los Evaluate métodos toma un XPathNodeIterator objeto como parámetro. Este método en particular Evaluate es idéntico al Evaluate método que solo toma un XPathExpression objeto como parámetro, salvo que permite que un argumento de conjunto de nodos especifique el contexto actual para realizar la evaluación. Este contexto es necesario para XPath position() y last() funciones, ya que son relativos al nodo de contexto actual. A menos que se use como predicado en un paso de ubicación, las funciones position() y last() requieren una referencia a un conjunto de nodos para poder evaluarse; de lo contrario, las funciones position y last devuelven 0.

Consulte también