DOMXPath::evaluate

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

DOMXPath::evaluate Avalia a expressão XPath fornecida e retorna um resultado tipado se possível

Descrição

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

Executa a expressão XPath expression fornecida e retorna um resultado tipado se possível.

Parâmetros

expression

A expressão XPath a ser executada.

contextNode

O contextNode opcional pode ser especificado para realizar consultas XPath relativas. Por padrão, as consultas são relativas ao elemento raiz.

registerNodeNS

Define se deve-se registrar automaticamente os prefixos de espaços de nomes dentro do escopo no nó de contexto para o objeto DOMXPath. Isto pode ser usado para evitar a necessidade de se chamar DOMXPath::registerNamespace() manuallmente para cada espaço de nome dentro do escopo. Quando existir um conflito entre prefixos de espaços de nomes, apenas o prefixo do espaço de nome descendente mais próximo será registrado.

Valor Retornado

Retorna um resultado tipado se possível ou uma DOMNodeList contendo todos os nós que correspondem à expressão XPath expression.

Se a expression estiver malformada ou o contextNode for inválido, DOMXPath::evaluate() retorna false.

Exemplos

Example #1 Obtendo a contagem de todos os livros em inglês

<?php

$doc = new DOMDocument;

$doc->load('book.xml');

$xpath = new DOMXPath($doc);

$tbody = $doc->getElementsByTagName('tbody')->item(0);

// nossa consulta é relativa ao nó tbody
$query = 'count(row/entry[. = "en"])';

$entries = $xpath->evaluate($query, $tbody);
echo "There are $entries english books\n";

?>

O exemplo acima produzirá:

There are 2 english books

Veja Também