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

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

Susan Sarandon
リリース: 2024-10-31 01:18:29
オリジナル
337 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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