ホームページ  >  記事  >  バックエンド開発  >  PHP DOMDocument と DOMXpath を使用して HTML から特定のテキストを効率的に抽出するにはどうすればよいですか?

PHP DOMDocument と DOMXpath を使用して HTML から特定のテキストを効率的に抽出するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-31 01:18:29273ブラウズ

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」を取得することです。

DOMDocument に依存する代わりに、XPath クエリ アプローチ:

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

これは、特定のコンテンツの正確な HTML 解析と抽出に PHP の DOMDocument と DOMXpath を使用することの有効性を示しています。

以上がPHP DOMDocument と DOMXpath を使用して HTML から特定のテキストを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。