PHP | Función de evaluación() de DOMXPath

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
 

Publicación traducida automáticamente

Artículo escrito por gurrrung y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *