如何使用 PHP 根據特定元素類別從 HTML 文件中提取文字資料並對其進行分類?

Mary-Kate Olsen
發布: 2024-11-12 15:48:01
原創
600 人瀏覽過

How can I extract and categorize text data from an HTML document based on specific element classes using PHP?

從指定類別的元素中檢索文字作為綜合數組

在此查詢中,當前的任務是提取文字資料並對其進行分類來自基於特定元素類別的HTML 文件。 HTML 文件包含各種段落,其中包含「Heading1-P」和「Normal-P」等類,每個段落都包含相應的標題和內容。

為了實現此目的,我們可以利用 PHP DOM 文件和 XPath。該過程涉及解析 HTML 文件並使用 XPath 遍歷其元素。我們定義一個自訂函數 parseToArray(),它將 XPath 物件和類別名稱作為輸入。此函數遍歷與類別相符的元素,並將其文字內容提取到陣列中。

詳細解決方案如下:

$test = <<< 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>
<p class="Heading1-P">
    <span class="Heading1-H">Chapter 2</span>
</p>
<p class="Normal-P">
    <span class="Normal-H">This is chapter 2</span>
</p>
<p class="Heading1-P">
    <span class="Heading1-H">Chapter 3</span>
</p>
<p class="Normal-P">
    <span class="Normal-H">This is chapter 3</span>
</p>
HTML;

$dom = new DOMDocument();
$dom->loadHTML($test);
$xpath = new DOMXPath($dom);
$heading = parseToArray($xpath, 'Heading1-H');
$content = parseToArray($xpath, 'Normal-H');

var_dump($heading);
echo "<br/>";
var_dump($content);
echo "<br/>";

function parseToArray(DOMXPath $xpath, string $class): array
{
    $xpathquery = "//[@class='$class']";
    $elements = $xpath->query($xpathquery);

    $resultarray = [];
    foreach ($elements as $element) {
        $nodes = $element->childNodes;
        foreach ($nodes as $node) {
            $resultarray[] = $node->nodeValue;
        }
    }

    return $resultarray;
}
登入後複製

函數 parseToArray() 根據特定類別識別元素名稱並將其文字內容提取到數組中。隨後,建立兩個陣列:$heading 和$content,分別包含章節標題和相應的段落文字。程式碼的輸出如下:

array(3) {
  [0] =>
  string(8) "Chapter 1"
  [1] =>
  string(8) "Chapter 2"
  [2] =>
  string(8) "Chapter 3"
}
array(3) {
  [0] =>
  string(16) "This is chapter 1"
  [1] =>
  string(16) "This is chapter 2"
  [2] =>
  string(16) "This is chapter 3"
}
登入後複製

透過採用此方法,您可以根據特定的類別名稱從 HTML 文件中有效地檢索和分離文字內容,從而實現靈活且有針對性的資料處理。

以上是如何使用 PHP 根據特定元素類別從 HTML 文件中提取文字資料並對其進行分類?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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