Open In App

PHP | DOMXPath evaluate() Function

Last Updated : 13 Jul, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

The DOMXPath::evaluate() function is an inbuilt function in PHP which is used to execute the given XPath expression which is a pattern defined to select a set of nodes.
Syntax: 
 

mixed DOMXPath::evaluate( string $expression, 
          DOMNode $contextnode, bool $registerNodeNS )


Parameters: This function accept three parameters as mentioned above and described below: 
 

  • $expression: It specifies the XPath expression to execute.
  • $contextnode (Optional): It specifies the contextnode for doing relative XPath queries. By default, the queries are relative to the root element.
  • $registerNodeNS (Optional): It specifies whether to disable automatic registration of the context node.


Return Value: This function returns TRUE on success.
Exceptions: This function throws DOMXPathException on error.
Below examples illustrate the DOMXPath::evaluate() function in PHP:
Example 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";
?>

Output: 
 

Number of elements with lang = "en": 2


Example 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;
?>

Output: 
 

Keep Learning.


Reference: https://www.php.net/manual/en/domxpath.evaluate.php
 


Next Article

Similar Reads