首頁  >  文章  >  後端開發  >  如何使用 PHP 的 DOMDocument 和 XPath 有效地從特定 HTML 元素中提取文字?

如何使用 PHP 的 DOMDocument 和 XPath 有效地從特定 HTML 元素中提取文字?

Barbara Streisand
Barbara Streisand原創
2024-11-02 08:48:29440瀏覽

How to Efficiently Extract Text from Specific HTML Elements Using PHP's DOMDocument and XPath?

用PHP 的HTML DOMDocument 解析HTML

問題:

利用DOMDocument 對象,捕獲特定HTML 元素中的文字。例如,從以下HTML 擷取「擷取此文字1」與「擷取此文字2」:

<div class="main">
    <div class="text">
    Capture this text 1
    </div>
</div>

<div class="main">
    <div class="text">
    Capture this text 2
    </div>
</div>

答案:

使用DOMDocument::getElementsByTagName檢索具有特定名稱的所有標籤可能會對此任務效率低下。相反,請考慮利用 DOMXPath 類別對文件使用 XPath 查詢。

實作:

  1. 將HTML 載入到DOMDocument物件:

    <code class="php">$html = <<<HTML
    <div class="main">
     <div class="text">
     Capture this text 1
     </div>
    </div>
    
    <div class="main">
     <div class="text">
     Capture this text 2
     </div>
    </div>
    HTML;
    
    $dom = new DOMDocument();
    $dom->loadHTML($html);</code>
  2. 實例化DOMXPath 物件:

    <code class="php">$xpath = new DOMXPath($dom);</code>
  3. 執行XPath查詢:

    <code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
    執行XPath
  4. 檢索文字值:

    <code class="php">foreach ($tags as $tag) {
     var_dump(trim($tag->nodeValue));
    }</code>
此方法有效擷取「從提供的HTML 擷取此文字1」和「此文字1」和「此文字2”。

以上是如何使用 PHP 的 DOMDocument 和 XPath 有效地從特定 HTML 元素中提取文字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn