(PHP 5 >= 5.1.0, PHP 7)
DOMXPath::evaluate — Вычисляет переданное XPath выражение и возвращает типизированный результат, если возможно
$expression
   [, DOMNode $contextnode
   [, bool $registerNodeNS = true
  ]] )
   Выполняет переданное XPath выражение expression и
   возвращает типизированный результат, если это возможно.
  
expressionXPath выражение для выполнения.
contextnode
       Дополнительный параметр contextnode может быть
       использован для указания обрабатывать относительные XPath запросы. По
       умолчанию запросы выполняются относительно корневого элемента.
      
registerNodeNS
       Посредством необязательного аргумента 
       registerNodeNS можно отключить 
       автоматическую регистрацию контекста узла.
      
   Возвращает типизированный результат, если это возможно, либо объект 
   DOMNodeList содержащий все узлы, соответствующие
   заданному XPath выражению expression.
  
   Если значение аргумента expression построено 
   неправильно или contextnode имеет неверное значение,
   DOMXPath::evaluate() вернет FALSE.
  
| Версия | Описание | 
|---|---|
| 5.3.3 | Добавлен аргумент registerNodeNS. | 
Пример #1 Определение количества всех английских книг
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('tbody')->item(0);
// запрос информации относительно узла tbody
$query = 'count(row/entry[. = "en"])';
$entries = $xpath->evaluate($query, $tbody);
echo "Всего английских книг $entries\n";
?>
Результат выполнения данного примера:
Всего английских книг 2