La función DOMXPath::evaluate() es una función incorporada en PHP que se usa para ejecutar la expresión XPath dada, que es un patrón definido para seleccionar un conjunto de Nodes.
Sintaxis:
mixed DOMXPath::evaluate( string $expression, DOMNode $contextnode, bool $registerNodeNS )
Parámetros: esta función acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- $expresión: Especifica la expresión XPath a ejecutar.
- $contextnode (Opcional): Especifica el contextnode para realizar consultas XPath relativas. De forma predeterminada, las consultas son relativas al elemento raíz.
- $registerNodeNS (Opcional): Especifica si deshabilitar el registro automático del Node de contexto.
Valor de retorno: esta función devuelve VERDADERO en caso de éxito.
Excepciones: esta función lanza DOMXPathException en caso de error.
Los siguientes ejemplos ilustran la función DOMXPath::evaluate() en PHP:
Ejemplo 1:
php
<?php // Create a new DOMDocument instance $document = new DOMDocument(); // Create a XML $xml = <<<XML <?xml version="1.0" encoding="utf-8"?> <bookstore> <book> <title lang="en">GeeksforGeeks</title> <price>400</price> </book> <book> <title lang="en">Intro to XML</title> <price>300</price> </book> </bookstore> XML; // Load the XML $document->loadXML($xml); // Create a new DOMXPath instance $xpath = new DOMXPath($document); // Get the $tbody = $document-> getElementsByTagName('bookstore')->item(0); // Query to get the number of titles with lang // attribute "en" $query = 'count(//title[@lang=\'en\'])'; // Evaluate the query $entries = $xpath->evaluate($query, $tbody); echo "Number of elements with lang = \"en\": $entries\n"; ?>
Producción:
Number of elements with lang = "en": 2
Ejemplo 2:
php
<?php // Create a new DOMDocument instance $document = new DOMDocument(); // Create a XML $xml = <<<XML <?xml version="1.0" encoding="utf-8"?> <GeeksforGeeks> Keep Learning. </GeeksforGeeks> XML; // Load the XML $document->loadXML($xml); // Create a new DOMXPath instance $xpath = new DOMXPath($document); // Get the $tbody = $document-> getElementsByTagName('GeeksforGeeks')->item(0); // Get the element with name GeeksforGeeks $query = '//GeeksforGeeks'; // Evaluate the query $entries = $xpath->evaluate($query, $tbody); echo $entries[0]->nodeValue; ?>
Producción:
Keep Learning.
Referencia: https://www.php.net/manual/en/domxpath.evaluate.php