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

Barbara Streisand
發布: 2024-11-02 08:48:29
原創
439 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!