Auf Englisch lesen

Freigeben ü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 object Evaluate (string xpath);

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

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:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Evaluate(XPathExpression)

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

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

public virtual object Evaluate (System.Xml.XPath.XPathExpression expr);

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

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:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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 object Evaluate (string xpath, System.Xml.IXmlNamespaceResolver? resolver);
public virtual object Evaluate (string xpath, System.Xml.IXmlNamespaceResolver resolver);

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

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:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

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

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

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:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1