簡介:
使用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中文網其他相關文章!