Evalúa una expresión XPath dada y devuelve un resultado tipado si es posible

# DOMXPath::evaluate

(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

### Descripción

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

Ejecuta la expresión XPath `expression` y devuelve un resultado tipado si es posible.

### Parámetros

`expression`

  La 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.

`registerNodeNS`
  Indica 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.

### Errores/Excepciones

Los siguientes errores pueden ocurrir al utilizar una expresión que invoca retrollamadas PHP.

- Lanza una Error si una retrollamada PHP es invocada pero ninguna retrollamada está registrada, o si la retrollamada nombrada no está registrada.
- Lanza una TypeError si la sintaxis `php:function` es utilizada y el nombre del gestor no es un string.
- Lanza una Error si un objeto no-DOM es devuelto por una retrollamada.

### Valores devueltos

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`.

### Ejemplos

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

### Ver también

- DOMXPath::query() - Evalúa la expresión XPath dada

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open