Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

PHP | DOMXPath evaluate() Function

  • Last Updated : 13 Jul, 2021

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
 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!