XPathNavigator::Evaluate Method (XPathExpression^)
Evaluates the XPathExpression and returns the typed result.
Assembly: System.Xml (in System.Xml.dll)
Parameters
- expr
-
Type:
System.Xml.XPath::XPathExpression^
An XPathExpression that can be evaluated.
Return Value
Type: System::Object^The result of the expression (Boolean, number, string, or node set). This maps to Boolean, Double, String, or XPathNodeIterator objects respectively.
| Exception | Condition |
|---|---|
| ArgumentException | The return type of the XPath expression is a node set. |
| XPathException | The XPath expression is not valid. |
The following C# code returns a number after converting the Price/text() node to a number and multiplying the value by 10.
XPathExpression expr = nav.Compile("Price/text()*10");
nav.Evaluate(expr);
Note |
|---|
The XPath position() and last() functions, unless used as a predicate in a location step, require a reference to a node set in order to be evaluated. In this case, you must use the overload which takes an XPathNodeIterator as an argument; otherwise, position() and last() return 0. |
This method has no effect on the state of the XPathNavigator.
The following example evaluates an XPathExpression and returns a 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());
The example takes the books.xml file as an input.
<?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>
Available since 1.1
Silverlight
Available since 4.0
