(PHP 5 >= 5.1.0, PHP 7, PHP 8)
DOMXPath::evaluate — Evalúa una expresión XPath dada y devuelve un resultado tipado si es posible
$expression, ?DOMNode $contextNode = null, bool $registerNodeNS = true): mixed
Ejecuta la expresión XPath expression
y devuelve un resultado tipado si es posible.
expressionLa expresión XPath a ejecutar.
contextNode
El argumento opcional contextNode puede ser
especificado para realizar consultas XPath relativas. Por omisión, las consultas
son relativas al elemento root.
registerNodeNSIndica si se deben registrar automáticamente los prefijos de espacio de nombres en vigor del nodo de contexto en el objeto DOMXPath. Esto puede ser utilizado para evitar tener que llamar manualmente a DOMXPath::registerNamespace() para cada espacio de nombres en vigor. En caso de conflicto de prefijos de espacio de nombres, solo se registra el prefijo de espacio de nombres descendiente más cercano.
Los siguientes errores pueden ocurrir al utilizar una expresión que invoca retrollamadas PHP.
php:function es utilizada y el nombre del gestor
no es un string.
Devuelve un resultado tipado si es posible o un DOMNodeList
que contiene todos los nodos que coinciden con la expresión XPath
expression.
Si el argumento expression está mal formado
o bien si el argumento contextNode es inválido,
el método DOMXPath::evaluate() devolverá false.
Ejemplo #1 Recuperación del número total de libros en inglés
<?php
$doc = new DOMDocument;
$doc->load('examples/book-dcobook.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('tbody')->item(0);
// nuestra consulta es relativa al nodo tbody
$query = 'count(row/entry[. = "en"])';
$entries = $xpath->evaluate($query, $tbody);
echo "Hay $entries libros en inglés\n";
?>El ejemplo anterior mostrará :
Hay 2 libros en inglés