Teilen über


XPathNavigator.Evaluate Methode

Definition

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

Überlädt

Evaluate(String)

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

Evaluate(XPathExpression)

Wertet den XPathExpression aus und gibt das typisierte Ergebnis zurück.

Evaluate(String, IXmlNamespaceResolver)

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

Evaluate(XPathExpression, XPathNodeIterator)

Verwendet den angegebenen Kontext für die Auswertung des XPathExpression und gibt das typisierte Ergebnis zurück.

Evaluate(String)

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

Wertet den angegebenen XPath-Ausdruck aus und gibt das typisierte 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 (boolescher Wert, Zahl, Zeichenfolge oder Knotengruppe). Dieses wird einem Boolean-, Double-, String- oder XPathNodeIterator-Objekt zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist eine Knotengruppe.

Der XPath-Ausdruck ist ungültig.

Beispiele

Im folgenden Beispiel wird ein XPath-Ausdruck ausgewertet und ein Doublezurückgegeben.

XPathDocument^ document = gcnew 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());
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())

In diesem Beispiel wird die Datei books.xml 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

Die XPath-Funktionen position() und last() erfordern, sofern sie nicht als Prädikat in einem Standortschritt verwendet werden, einen Verweis auf einen Knotensatz, um ausgewertet zu werden. In diesem Fall müssen Sie die Überladung verwenden, die ein XPathNodeIterator als Argument annimmt. Andernfalls geben position() und last() 0 zurück.

Diese Methode hat keine Auswirkungen auf den Zustand von XPathNavigator.

Weitere Informationen

Gilt für:

Evaluate(XPathExpression)

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

Wertet den XPathExpression aus und gibt das typisierte Ergebnis 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, der ausgewertet werden kann.

Gibt zurück

Das Ergebnis des Ausdrucks (boolescher Wert, Zahl, Zeichenfolge oder Knotengruppe). Dieses wird einem Boolean-, Double-, String- oder XPathNodeIterator-Objekt zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist eine Knotengruppe.

Der XPath-Ausdruck ist ungültig.

Beispiele

Im folgenden Beispiel wird ein XPathExpression ausgewertet und zurückgegeben Double.

XPathDocument^ document = gcnew 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());
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())

In diesem Beispiel wird die Datei books.xml 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

Die XPath-Funktionen position() und last() erfordern, sofern sie nicht als Prädikat in einem Standortschritt verwendet werden, einen Verweis auf einen Knotensatz, um ausgewertet zu werden. In diesem Fall müssen Sie die Überladung verwenden, die ein XPathNodeIterator als Argument annimmt. Andernfalls geben position() und last() 0 zurück.

Diese Methode hat keine Auswirkungen auf den Zustand von XPathNavigator.

Weitere Informationen

Gilt für:

Evaluate(String, IXmlNamespaceResolver)

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

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

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 (boolescher Wert, Zahl, Zeichenfolge oder Knotengruppe). Dieses wird einem Boolean-, Double-, String- oder XPathNodeIterator-Objekt zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist eine Knotengruppe.

Der XPath-Ausdruck ist ungültig.

Beispiele

Im folgenden Beispiel wird ein XPath-Ausdruck ausgewertet und mithilfe Double des -Objekts zurückgegeben, das XmlNamespaceManager zum Auflösen von Namespacepräfixen im XPath-Ausdruck angegeben ist.

XPathDocument^ document = gcnew XPathDocument("contosoBooks.xml");
XPathNavigator^ navigator = document->CreateNavigator();

XmlNamespaceManager^ manager = gcnew 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());
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())

In diesem Beispiel wird die Datei contosoBooks.xml 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

Die XPath-Funktionen position() und last() erfordern, sofern sie nicht als Prädikat in einem Standortschritt verwendet werden, einen Verweis auf einen Knotensatz, um ausgewertet zu werden. In diesem Fall müssen Sie die Überladung verwenden, die ein XPathNodeIterator als Argument annimmt. Andernfalls geben position() und last() 0 zurück.

Diese Methode hat keine Auswirkungen auf den Zustand von XPathNavigator.

Gilt für:

Evaluate(XPathExpression, XPathNodeIterator)

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

Verwendet den angegebenen Kontext für die Auswertung des XPathExpression und gibt das typisierte Ergebnis zurück.

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, der ausgewertet werden kann.

context
XPathNodeIterator

Ein XPathNodeIterator, der auf die ausgewählte Knotengruppe zeigt, für die eine Auswertung vorgenommen werden soll.

Gibt zurück

Das Ergebnis des Ausdrucks (boolescher Wert, Zahl, Zeichenfolge oder Knotengruppe). Dieses wird einem Boolean-, Double-, String- oder XPathNodeIterator-Objekt zugeordnet.

Ausnahmen

Der Rückgabetyp des XPath-Ausdrucks ist eine Knotengruppe.

Der XPath-Ausdruck ist ungültig.

Beispiele

Im folgenden Beispiel wird ein XPathExpression ausgewertet und mithilfe Double des Current Knotens des XPathNodeIterator als Kontextknoten zurückgegeben.

XPathDocument^ document = gcnew 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());
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())

In diesem Beispiel wird die Datei books.xml 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 von XPathNodeIterator als Kontextknoten ausgewertet. Wenn context ist null, wird der Knoten, auf dem sich derzeit befindet, XPathNavigator als Kontextknoten verwendet.

Die Funktionen position() und last() geben unter den folgenden Bedingungen immer 0 zurück, sofern sie nicht als Prädikat in einem Standortschritt verwendet werden:

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. Dadurch kann der Status von XPathNavigatorungültig werden.

Diese Methode hat keine Auswirkungen auf den Zustand von XPathNavigator.

Gilt für: