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


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


DOMXPath::query()函数是PHP中的一个内置函数,用于评估给定的XPath表达式。

用法:

DOMNodeList DOMXPath::query( string $expression, 
       DOMNode $contextnode, bool $registerNodeNS )

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



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

返回值:此函数返回一个DOMNodeList,其中包含与给定XPath表达式匹配的所有节点。任何不返回节点的表达式都将返回一个空的DOMNodeList。

下面给出的程序说明了PHP中的DOMXPath::query()函数:

程序1:在此程序中,我们将获取具有名称内容的元素的所有元素值。

<?php 
  
// Create a new DOMDocument instance 
$document = new DOMDocument(); 
  
// Create a XML 
$xml = <<<XML 
<?xml version="1.0" encoding="utf-8"?> 
<root> 
    <content> 
        First 
    </content> 
    <content> 
        Second 
    </content> 
    <content> 
        Third 
    </content> 
</root> 
XML; 
  
// Load the XML 
$document->loadXML($xml); 
  
// Create a new DOMXPath instance 
$xpath = new DOMXPath($document); 
  
// Get the root element 
$tbody = $document->getElementsByTagName('root')->item(0); 
  
// Get all the element with name content 
$query = '//content'; 
  
// Execute the query 
$entries = $xpath->query($query); 
  
foreach ($entries as $entry) { 
    echo $entry->nodeValue . "<br>"; 
} 
?>

输出:

First
Second
Third

程序2:在此程序中,我们将计算所有名称为h1的元素。

<?php 
// Create a new DOMDocument instance 
$document = new DOMDocument(); 
  
// Create a XML 
$xml = <<<XML 
<?xml version="1.0" encoding="utf-8"?> 
<root> 
    <h1> 
        Hello 
    </h1> 
    <h1> 
        World 
    </h1> 
    <h1> 
        Foo 
    </h1> 
    <h1> 
        Bar 
    </h1> 
</root> 
XML; 
  
// Load the XML 
$document->loadXML($xml); 
  
// Create a new DOMXPath instance 
$xpath = new DOMXPath($document); 
  
// Get the root element 
$tbody = $document->getElementsByTagName('root')->item(0); 
  
// Get all the element with name h1 
$query = '//h1'; 
  
// Execute the query 
$entries = $xpath->query($query); 
  
// Count the number of headings 
echo count($entries); 
?>

输出:

4

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




相关用法


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