Mengevaluasi Ekspresi XPath menggunakan XPathNavigator

Kelas XPathNavigator menyediakan Evaluate metode untuk mengevaluasi ekspresi XPath. Metode Evaluate ini menerima ekspresi XPath, mengevaluasinya, dan kemudian mengembalikan jenis XPath W3C berupa Boolean, Number, String, atau Node Set, sesuai dengan hasil evaluasi ekspresi XPath tersebut.

Metode Evaluasi

Metode Evaluate mengambil ekspresi XPath, mengevaluasinya, dan mengembalikan hasil bertipe Boolean (Boolean), Angka (Double), String (String), atau Set Simpul (XPathNodeIterator). Misalnya, Evaluate metode dapat digunakan dalam metode matematika. Contoh kode berikut menghitung harga total semua buku dalam books.xml file.

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

Contoh mengambil file books.xml sebagai 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>

posisi dan fungsi terakhir

Metode Evaluate kelebihan beban. Salah Evaluate satu metode mengambil XPathNodeIterator objek sebagai parameter. Metode khusus Evaluate ini identik dengan metode Evaluate yang hanya XPathExpression mengambil objek sebagai parameter, tetapi metode ini memungkinkan pemberian argumen set simpul untuk menentukan konteks saat ini dalam melakukan evaluasi. Konteks ini diperlukan untuk fungsi XPath position() dan last() karena relatif terhadap simpul konteks saat ini. Kecuali digunakan sebagai predikat dalam langkah lokasi, fungsi position() dan last() memerlukan referensi ke set simpul untuk dievaluasi; sebaliknya, fungsi position dan last akan mengembalikan 0.

Lihat juga