当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP DOMXPath evaluate()用法及代码示例


DOMXPath::evaluate()函数是PHP中的内置函数,用于执行给定的XPath表达式,该表达式是为选择一组节点而定义的模式。

用法:

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

参数:此函数接受上述和以下所述的三个参数:



  • $expression:它指定要执行的XPath表达式。
  • $contextnode (Optional):它指定用于执行相对XPath查询的contextnode。默认情况下,查询是相对于根元素的。
  • $registerNodeNS (Optional):它指定是否禁用上下文节点的自动注册。

返回值:成功时此函数返回TRUE。

异常:该函数在出错时抛出DOMXPathException。

下面的示例说明了PHP中的DOMXPath::evaluate()函数:

范例1:

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

输出:

Number of elements with lang = "en":2

范例2:

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

输出:

Keep Learning.

参考: https://www.php.net/manual/en/domxpath.evaluate.php




相关用法


注:本文由纯净天空筛选整理自gurrrung大神的英文原创作品 PHP | DOMXPath evaluate() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。