Freigeben über


Auswerten von XPath-Ausdrücken mit XPathNavigator

Die XPathNavigator Klasse stellt die Evaluate Methode zum Auswerten eines XPath-Ausdrucks bereit. Die Evaluate Methode verwendet einen XPath-Ausdruck, wertet ihn aus und gibt basierend auf dem Ergebnis des XPath-Ausdrucks einen W3C XPath-Typ vom Typ Boolean, Number, String oder Node Set zurück.

Die Bewertungsmethode

Die Evaluate Methode akzeptiert einen XPath-Ausdruck, wertet ihn aus und gibt ein typiertes Ergebnis von Boolean (Boolean), Number (), String (DoubleString) oder Node Set (XPathNodeIterator) zurück. Ein Beispiel dafür, wie die Evaluate-Methode in einem mathematischen Verfahren verwendet werden könnte. Im folgenden Beispielcode wird der Gesamtpreis aller Bücher in der books.xml Datei berechnet.

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

Im Beispiel wird die books.xml Datei als Eingabe verwendet.

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

Position und letzte Funktionen

Die Evaluate Methode wird überladen. Eine der Evaluate Methoden verwendet ein XPathNodeIterator Objekt als Parameter. Diese spezielle Evaluate Methode ist identisch mit der Evaluate Methode, die nur ein XPathExpression Objekt als Parameter verwendet, mit der Ausnahme, dass ein Knotensatzargument den aktuellen Kontext für die Auswertung angeben kann. Dieser Kontext ist für XPath position() und last() Funktionen erforderlich, da sie relativ zum aktuellen Kontextknoten sind. Sofern sie nicht als Prädikat in einem Positionsschritt verwendet werden, benötigen die position() und last() Funktionen einen Verweis auf einen Knotensatz, um ausgewertet zu werden. Andernfalls geben die position und last Funktionen 0 zurück.

Siehe auch