Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Класс XPathNavigator предоставляет метод Evaluate для вычисления выражения XPath. Метод Evaluate принимает выражение XPath, вычисляет его и возвращает тип XPath W3C boolean, Number, String или Node Set на основе результата выражения XPath.
Метод Оценки
Метод Evaluate принимает выражение XPath, вычисляет его и возвращает типизированный результат логического значения (Boolean Boolean), числа (Double), строки (String) или набора узлов (XPathNodeIterator). Например, Evaluate метод можно использовать в математическом методе. В следующем примере кода вычисляется общая цена всех книг в books.xml
файле.
Dim document As XPathDocument = New XPathDocument("books.xml")
Dim navigator As XPathNavigator = document.CreateNavigator()
Dim query As XPathExpression = navigator.Compile("sum(//price/text())")
Dim total As Double = CType(navigator.Evaluate(query), Double)
Console.WriteLine(total)
XPathDocument document = new XPathDocument("books.xml");
XPathNavigator navigator = document.CreateNavigator();
XPathExpression query = navigator.Compile("sum(//price/text())");
Double total = (Double)navigator.Evaluate(query);
Console.WriteLine(total);
Пример принимает файл books.xml
в качестве входных данных.
<?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>
положение и последние функции
Метод Evaluate перегружен. Один из Evaluate методов принимает XPathNodeIterator объект в качестве параметра. Этот конкретный Evaluate метод идентичен Evaluate методу, который принимает только XPathExpression объект в качестве параметра, за исключением того, что он позволяет аргументу набора узлов указать текущий контекст для выполнения оценки. Этот контекст необходим для XPath position()
и last()
функций, так как они относятся к текущему узлу контекста. Если предикат не используется в шаге расположения, функции position()
и last()
требуют ссылки на набор узлов для оценки, в противном случае position
и last
функции возвращают 0
.