首頁 >後端開發 >php教程 >如何使用 PHP DOMDocument 和 DOMXpath 有效地從 HTML 中提取特定文字?

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

Susan Sarandon
Susan Sarandon原創
2024-10-31 01:18:29336瀏覽

How can I efficiently extract specific text from HTML using PHP DOMDocument and DOMXpath?

使用PHP DOMDocument 解析HTML

與使用正規表示式相比,利用PHP 中的DOMDocument 類別提供了一個更有效率、類型更可靠的解析HTML 的方法。要從 HTML 文件中提取特定文本,DOMXpath 類別起著至關重要的作用。

範例:

考慮以下HTML 字串:

<code class="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></code>

我們的目標是擷取文字「Capture this text 1」和「Capture this text 2」。

XPath 查詢方法:

而不是依賴 DOMDocument ::getElementsByTagName,它檢索具有給定名稱的所有標籤,XPath 允許我們根據其結構定位特定元素。

<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);

$xpath = new DOMXPath($dom);</code>

使用XPath,我們可以執行以下查詢:

<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');
foreach ($tags as $tag) {
    var_dump(trim($tag->nodeValue));
}</code>

此查詢擷取嵌套在類別「main」的div 標籤內的所有類別為「text」的div標籤。

輸出:

string 'Capture this text 1' (length=19)
string 'Capture this text 2' (length=19)

這展示了使用 PHP 的 DOMDocument 和 DOMXpath 進行準確的 HTML 解析和提取特定內容的有效性。

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

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