Bagikan melalui


XPathNavigator.Evaluate Metode

Definisi

Mengevaluasi ekspresi XPath yang ditentukan dan mengembalikan hasil yang di ketik.

Overload

Nama Deskripsi
Evaluate(String)

Mengevaluasi ekspresi XPath yang ditentukan dan mengembalikan hasil yang di ketik.

Evaluate(XPathExpression)

Mengevaluasi XPathExpression dan mengembalikan hasil yang dititik.

Evaluate(String, IXmlNamespaceResolver)

Mengevaluasi ekspresi XPath yang ditentukan dan mengembalikan hasil yang ditik, menggunakan IXmlNamespaceResolver objek yang ditentukan untuk mengatasi awalan namespace dalam ekspresi XPath.

Evaluate(XPathExpression, XPathNodeIterator)

Menggunakan konteks yang disediakan untuk mengevaluasi XPathExpression, dan mengembalikan hasil yang ditik.

Evaluate(String)

Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs

Mengevaluasi ekspresi XPath yang ditentukan dan mengembalikan hasil yang di ketik.

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

Parameter

xpath
String

String yang mewakili ekspresi XPath yang dapat dievaluasi.

Mengembalikan

Hasil ekspresi (Boolean, angka, string, atau set simpul). Ini masing-masing memetakan ke BooleanDouble, , String, atau XPathNodeIterator .

Pengecualian

Jenis pengembalian ekspresi XPath adalah set simpul.

Ekspresi XPath tidak valid.

Contoh

Contoh berikut mengevaluasi ekspresi XPath dan mengembalikan 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())

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

Keterangan

Kode C# berikut mengonversi simpul Price/text() menjadi angka, mengalikannya dengan 10, dan mengembalikan nilai yang dihasilkan.

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

Nota

Fungsi XPath position() dan last(), kecuali digunakan sebagai predikat dalam langkah lokasi, memerlukan referensi ke node yang ditetapkan untuk dievaluasi. Dalam hal ini, Anda harus menggunakan kelebihan beban yang mengambil XPathNodeIterator sebagai argumen; jika tidak, posisi() dan terakhir() mengembalikan 0.

Metode ini tidak berpengaruh pada status XPathNavigator.

Lihat juga

Berlaku untuk

Evaluate(XPathExpression)

Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs

Mengevaluasi XPathExpression dan mengembalikan hasil yang dititik.

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

Parameter

expr
XPathExpression

Yang XPathExpression dapat dievaluasi.

Mengembalikan

Hasil ekspresi (Boolean, angka, string, atau set simpul). Ini masing-masing memetakan ke BooleanDouble, , String, atau XPathNodeIterator .

Pengecualian

Jenis pengembalian ekspresi XPath adalah set simpul.

Ekspresi XPath tidak valid.

Contoh

Contoh berikut mengevaluasi XPathExpression dan mengembalikan 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())

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

Keterangan

Kode C# berikut mengembalikan angka setelah mengonversi simpul Price/text() menjadi angka dan mengalikan nilai dengan 10.

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

Nota

Fungsi XPath position() dan last(), kecuali digunakan sebagai predikat dalam langkah lokasi, memerlukan referensi ke node yang ditetapkan untuk dievaluasi. Dalam hal ini, Anda harus menggunakan kelebihan beban yang mengambil XPathNodeIterator sebagai argumen; jika tidak, posisi() dan terakhir() mengembalikan 0.

Metode ini tidak berpengaruh pada status XPathNavigator.

Lihat juga

Berlaku untuk

Evaluate(String, IXmlNamespaceResolver)

Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs

Mengevaluasi ekspresi XPath yang ditentukan dan mengembalikan hasil yang ditik, menggunakan IXmlNamespaceResolver objek yang ditentukan untuk mengatasi awalan namespace dalam ekspresi 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

Parameter

xpath
String

String yang mewakili ekspresi XPath yang dapat dievaluasi.

resolver
IXmlNamespaceResolver

Objek yang IXmlNamespaceResolver digunakan untuk mengatasi awalan namespace dalam ekspresi XPath.

Mengembalikan

Hasil ekspresi (Boolean, angka, string, atau set simpul). Ini masing-masing memetakan ke BooleanDouble, , String, atau XPathNodeIterator .

Pengecualian

Jenis pengembalian ekspresi XPath adalah set simpul.

Ekspresi XPath tidak valid.

Contoh

Contoh berikut mengevaluasi ekspresi XPath dan mengembalikan Double menggunakan XmlNamespaceManager objek yang ditentukan untuk mengatasi awalan namespace dalam ekspresi 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())

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

Keterangan

Kode C# berikut mengembalikan angka setelah mengonversi simpul Price/text() menjadi angka dan mengalikan nilai dengan 10.

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

Nota

Fungsi XPath position() dan last(), kecuali digunakan sebagai predikat dalam langkah lokasi, memerlukan referensi ke node yang ditetapkan untuk dievaluasi. Dalam hal ini, Anda harus menggunakan kelebihan beban yang mengambil XPathNodeIterator sebagai argumen; jika tidak, posisi() dan terakhir() mengembalikan 0.

Metode ini tidak berpengaruh pada status XPathNavigator.

Berlaku untuk

Evaluate(XPathExpression, XPathNodeIterator)

Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs
Sumber:
XPathNavigator.cs

Menggunakan konteks yang disediakan untuk mengevaluasi XPathExpression, dan mengembalikan hasil yang ditik.

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

Parameter

expr
XPathExpression

Yang XPathExpression dapat dievaluasi.

context
XPathNodeIterator

Yang XPathNodeIterator menunjuk ke set simpul yang dipilih bahwa evaluasi akan dilakukan.

Mengembalikan

Hasil ekspresi (Boolean, angka, string, atau set simpul). Ini masing-masing memetakan ke BooleanDouble, , String, atau XPathNodeIterator .

Pengecualian

Jenis pengembalian ekspresi XPath adalah set simpul.

Ekspresi XPath tidak valid.

Contoh

Contoh berikut mengevaluasi XPathExpression dan mengembalikan Double menggunakan simpul CurrentXPathNodeIterator sebagai simpul konteks.

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

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

Keterangan

Ekspresi dievaluasi menggunakan simpul CurrentXPathNodeIterator sebagai simpul konteks. Jika context adalah null, simpul tempat XPathNavigator saat ini diposisikan digunakan sebagai simpul konteks.

Fungsi posisi() dan last(), kecuali digunakan sebagai predikat dalam langkah lokasi, selalu kembalikan 0 dalam kondisi berikut:

Karena fungsi position() dan last() berfungsi pada simpul saat ini, Anda tidak boleh menggunakan Current properti untuk menjauh dari set simpul yang dipilih. Ini dapat membatalkan status XPathNavigator.

Metode ini tidak berpengaruh pada status XPathNavigator.

Berlaku untuk