(PHP 5 >= 5.1.0, PHP 7)
DOMXPath::evaluate — Evaluates the given XPath expression and returns a typed result if possible
$expression
   [, DOMNode $contextnode
   [, bool $registerNodeNS = true
  ]] )
   Executes the given XPath expression and returns
   a typed result if possible.
  
expressionThe XPath expression to execute.
contextnode
       The optional contextnode can be specified for
       doing relative XPath queries. By default, the queries are relative to 
       the root element.
      
registerNodeNS
       The optional registerNodeNS can be specified to 
       disable automatic registration of the context node.
      
   Returns a typed result if possible or a DOMNodeList 
   containing all nodes matching the given XPath expression. 
  
   If the expression is malformed or the
   contextnode is invalid,
   DOMXPath::evaluate() returns FALSE.
  
| Version | Description | 
|---|---|
| 5.3.3 | The registerNodeNSparameter was added. | 
Example #1 Getting the count of all the english books
<?php
$doc = new DOMDocument;
$doc->load('book.xml');
$xpath = new DOMXPath($doc);
$tbody = $doc->getElementsByTagName('tbody')->item(0);
// our query is relative to the tbody node
$query = 'count(row/entry[. = "en"])';
$entries = $xpath->evaluate($query, $tbody);
echo "There are $entries english books\n";
?>
The above example will output:
There are 2 english books