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 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:
Das
context
-Argument lautetnull
.MoveNext wurde nicht für XPathNodeIteratoraufgerufen.
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.