ホームページ > バックエンド開発 > 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 を効果的に解析し、必要な配列を返します。

注:

PHP DOM は HTML 操作により構造化されたプログラム的なアプローチを提供するため、このタスクに jQuery を使用することはお勧めできません。

以上がDOMDocument を使用して PHP の特定のクラスを持つ要素からテキストを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート