PHP の DOMDocument と XPath を使用して特定の HTML 要素からテキストを効率的に抽出する方法

Barbara Streisand
リリース: 2024-11-02 08:48:29
オリジナル
439 人が閲覧しました

How to Efficiently Extract Text from Specific HTML Elements Using PHP's DOMDocument and XPath?

PHP の HTML DOMDocument を使用した HTML の解析

質問:

DOMDocument オブジェクトを使用して、キャプチャします特定の HTML 要素内のテキスト。たとえば、次の HTML から「Capture this text 1」と「Capture this text 2」を抽出します:

<div class="main">
    <div class="text">
    Capture this text 1
    </div>
</div>

<div class="main">
    <div class="text">
    Capture this text 2
    </div>
</div>
ログイン後にコピー

Answer:

Using DOMDocument::getElementsByTagName特定の名前を持つすべてのタグを取得することは、このタスクにとって非効率的であることが判明する可能性があります。代わりに、DOMXPath クラスを利用して、ドキュメントに対して XPath クエリを採用することを検討してください。

実装:

  1. DOMDocument への HTML の読み込みオブジェクト:

    <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);</code>
    ログイン後にコピー
  2. DOMXPath のインスタンス化 オブジェクト:

    <code class="php">$xpath = new DOMXPath($dom);</code>
    ログイン後にコピー
  3. XPath の実行クエリ:

    <code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
    ログイン後にコピー
  4. テキスト値の取得:

    <code class="php">foreach ($tags as $tag) {
     var_dump(trim($tag->nodeValue));
    }</code>
    ログイン後にコピー

このアプローチでは、「提供された HTML から「このテキストをキャプチャ 1」と「このテキストをキャプチャ 2」を実行します。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!