DOMXPath::evaluate

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

DOMXPath::evaluate Вычисляет переданное выражение XPath и возвращает типизированный результат, если возможно

Описание

public DOMXPath::evaluate(string $expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed

Выполняет переданное выражение XPath expression и возвращает типизированный результат, если это возможно.

Список параметров

expression

Выражение XPath для выполнения.

contextNode

Дополнительный параметр contextNode может быть указан для выполнения относительных запросов XPath. По умолчанию запросы выполняются относительно корневого элемента.

registerNodeNS

Нужно ли автоматически регистрировать префиксы пространства имён в области видимости контекстного узла для объекта DOMXPath. Параметр помогает избегать ручного вызова метода DOMXPath::registerNamespace() для каждого пространства имён в области видимости. Когда префиксы пространства имён конфликтуют, регистрируется только префикс пространства имён близлежащего потомка.

Возвращаемые значения

Возвращает типизированный результат, если это возможно, либо объект DOMNodeList, содержащий все узлы, соответствующие заданному XPath-выражению expression.

Если expression построено неправильно или contextNode имеет неверное значение, DOMXPath::evaluate() вернёт false.

Примеры

Пример #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 английские книги

Смотрите также