📜  PHP | DOMXPath query()函数

📅  最后修改于: 2022-05-13 01:56:32.753000             🧑  作者: Mango

PHP | DOMXPath query()函数

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

句法:

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

参数:此函数接受三个参数,如上所述,如下所述:

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

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

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

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



    
        First
    
    
        Second
    
    
        Third
    

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

输出:

First
Second
Third

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



    

        Hello     

    

        World     

    

        Foo     

    

        Bar     

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