首頁 > 後端開發 > php教程 > 如何使用 DOMDocument 從 PHP 中具有特定類別的元素中提取文字?

如何使用 DOMDocument 從 PHP 中具有特定類別的元素中提取文字?

Susan Sarandon
發布: 2024-11-12 10:24:01
原創
347 人瀏覽過

How to Extract Text from Elements with a Specific Class in PHP Using DOMDocument?

從具有指定類別的元素中平展文字

簡介:

使用PHP DOM 解析HTML 可能是挑戰,尤其是在處理具體要求時。本文探討了一種從具有指定類別的元素中提取文字並將其組織成結構化數組的解決方案。

場景:

考慮以下HTML 內容:

<p class="Heading1-P">
    <span class="Heading1-H">Chapter 1</span>
</p>
<p class="Normal-P">
    <span class="Normal-H">This is chapter 1</span>
</p>
登入後複製

目標是從 中提取文本將具有“Heading1-H”類別的元素放入$heading 陣列中,並將具有「Normal-H」類別的文字放入$content 陣列中,結果是:

$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3'];
$content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];
登入後複製

使用DOMDocument 的解決方案和DOMXPath :

我們使用DOMDocument 和DOMXPath 來解決此任務。

// Load HTML into DOMDocument
$dom = new DOMDocument();
$dom->loadHTML($html);

// Create DOMXPath object
$xpath = new DOMXPath($dom);

// Get elements with desired class using XPath
$xpathQuery = "//*[@class='$class']";
$elements = $xpath->query($xpathQuery);

// Extract text from elements and store in arrays
$headings = [];
$contents = [];
foreach ($elements as $element) {
    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
        $headings[] = $node->nodeValue;
    }
}

var_dump($headings);
登入後複製

此解決方案有效地解析 HTML 並傳回所需的陣列。

注意:

不建議使用 jQuery 來完成此任務,因為 PHP DOM 提供了一種更結構化和程式化的 HTML 操作方法。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板