當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。