Freigeben über


XPathNavigator.Evaluate Methode

Definition

Wertet den angegebenen XPath-Ausdruck aus und gibt das eingegebene Ergebnis zurück.

Überlädt

Name Beschreibung
Evaluate(String)

Wertet den angegebenen XPath-Ausdruck aus und gibt das eingegebene Ergebnis zurück.

Evaluate(XPathExpression)

Wertet das XPathExpression eingegebene Ergebnis aus und gibt es zurück.

Evaluate(String, IXmlNamespaceResolver)

Wertet den angegebenen XPath-Ausdruck aus und gibt das typierte Ergebnis zurück, wobei das IXmlNamespaceResolver angegebene Objekt zum Auflösen von Namespacepräfixen im XPath-Ausdruck verwendet wird.

Evaluate(XPathExpression, XPathNodeIterator)

Verwendet den angegebenen Kontext, um das XPathExpressionErgebnis auszuwerten und das eingegebene Ergebnis zurückzugeben.

Evaluate(String)

Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs

Wertet den angegebenen XPath-Ausdruck aus und gibt das eingegebene Ergebnis zurück.

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

Eine Zeichenfolge, die einen XPath-Ausdruck darstellt, der ausgewertet werden kann.

Gibt zurück

Das Ergebnis des Ausdrucks (boolean, number, string, or node set). Dies ist jeweils den BooleanObjekten , Double, Stringoder Objekten XPathNodeIterator zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist ein Knotensatz.

Der XPath-Ausdruck ist ungültig.

Beispiele

Im folgenden Beispiel wird ein XPath-Ausdruck ausgewertet und ein 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())

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>

Hinweise

Der folgende C#-Code konvertiert den Price/text() Knoten in eine Zahl, multipliziert ihn mit 10 und gibt den resultierenden Wert zurück.

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

Hinweis

Für die Funktionen XPath position() und last() ist ein Verweis auf einen Knotensatz erforderlich, es sei denn, sie werden als Prädikat in einem Positionsschritt verwendet. In diesem Fall müssen Sie die Überladung verwenden, die als XPathNodeIterator Argument verwendet wird; andernfalls geben Sie position() und last() 0 zurück.

Diese Methode hat keine Auswirkung auf den Zustand des XPathNavigator.

Weitere Informationen

Gilt für:

Evaluate(XPathExpression)

Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs

Wertet das XPathExpression eingegebene Ergebnis aus und gibt es zurück.

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

Ein XPathExpression , das ausgewertet werden kann.

Gibt zurück

Das Ergebnis des Ausdrucks (boolean, number, string, or node set). Dies ist jeweils den BooleanObjekten , Double, Stringoder Objekten XPathNodeIterator zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist ein Knotensatz.

Der XPath-Ausdruck ist ungültig.

Beispiele

Das folgende Beispiel wertet ein XPathExpression und gibt ein 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())

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>

Hinweise

Der folgende C#-Code gibt eine Zahl zurück, nachdem der Price/text() Knoten in eine Zahl konvertiert und der Wert mit 10 multipliziert wurde.

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

Hinweis

Für die Funktionen XPath position() und last() ist ein Verweis auf einen Knotensatz erforderlich, es sei denn, sie werden als Prädikat in einem Positionsschritt verwendet. In diesem Fall müssen Sie die Überladung verwenden, die als XPathNodeIterator Argument verwendet wird; andernfalls geben Sie position() und last() 0 zurück.

Diese Methode hat keine Auswirkung auf den Zustand des XPathNavigator.

Weitere Informationen

Gilt für:

Evaluate(String, IXmlNamespaceResolver)

Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs

Wertet den angegebenen XPath-Ausdruck aus und gibt das typierte Ergebnis zurück, wobei das IXmlNamespaceResolver angegebene Objekt zum Auflösen von Namespacepräfixen im XPath-Ausdruck verwendet wird.

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

Eine Zeichenfolge, die einen XPath-Ausdruck darstellt, der ausgewertet werden kann.

resolver
IXmlNamespaceResolver

Das IXmlNamespaceResolver Objekt, das zum Auflösen von Namespacepräfixen im XPath-Ausdruck verwendet wird.

Gibt zurück

Das Ergebnis des Ausdrucks (boolean, number, string, or node set). Dies ist jeweils den BooleanObjekten , Double, Stringoder Objekten XPathNodeIterator zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist ein Knotensatz.

Der XPath-Ausdruck ist ungültig.

Beispiele

Im folgenden Beispiel wird ein XPath-Ausdruck ausgewertet und ein Double Using-Objekt zurückgegeben, das XmlNamespaceManager angegeben wurde, um Namespacepräfixe im XPath-Ausdruck aufzulösen.

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

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

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

Hinweise

Der folgende C#-Code gibt eine Zahl zurück, nachdem der Price/text() Knoten in eine Zahl konvertiert und der Wert mit 10 multipliziert wurde.

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

Hinweis

Für die Funktionen XPath position() und last() ist ein Verweis auf einen Knotensatz erforderlich, es sei denn, sie werden als Prädikat in einem Positionsschritt verwendet. In diesem Fall müssen Sie die Überladung verwenden, die als XPathNodeIterator Argument verwendet wird; andernfalls geben Sie position() und last() 0 zurück.

Diese Methode hat keine Auswirkung auf den Zustand des XPathNavigator.

Gilt für:

Evaluate(XPathExpression, XPathNodeIterator)

Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs
Quelle:
XPathNavigator.cs

Verwendet den angegebenen Kontext, um das XPathExpressionErgebnis auszuwerten und das eingegebene Ergebnis zurückzugeben.

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

Ein XPathExpression , das ausgewertet werden kann.

context
XPathNodeIterator

Ein XPathNodeIterator Punkt, der auf den ausgewählten Knotensatz verweist, für den die Auswertung ausgeführt werden soll.

Gibt zurück

Das Ergebnis des Ausdrucks (boolean, number, string, or node set). Dies ist jeweils den BooleanObjekten , Double, Stringoder Objekten XPathNodeIterator zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist ein Knotensatz.

Der XPath-Ausdruck ist ungültig.

Beispiele

Im folgenden Beispiel wird ein XPathExpression und ein Double mit dem Current Knoten des XPathNodeIterator Kontextknotens zurückgegeben.

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

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>

Hinweise

Der Ausdruck wird mithilfe des Current Knotens des XPathNodeIterator Kontextknotens ausgewertet. Wenn context ja null, wird der Knoten, auf dem sich die XPathNavigator aktuelle Position befindet, als Kontextknoten verwendet.

Die Funktionen "position()" und "last()" geben immer "0" unter den folgenden Bedingungen zurück, es sei denn, sie werden als Prädikat in einem Positionsschritt verwendet:

Da die Funktionen "position()" und "last()" auf dem aktuellen Knoten funktionieren, sollten Sie die Current Eigenschaft nicht verwenden, um sich vom ausgewählten Knotensatz zu entfernen. Dies könnte den Zustand der XPathNavigator.

Diese Methode hat keine Auswirkung auf den Zustand des XPathNavigator.

Gilt für: