XPathNavigator.Evaluate Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Das
contextArgument istnull.MoveNext wurde nicht aufgerufen XPathNodeIterator.
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.