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

DOMDocument と XPath を使用して、HTML から特定のテキスト コンテンツをターゲットにして抽出するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 09:51:27962ブラウズ

How can DOMDocument and XPath be used to Target and Extract Specific Text Content from HTML?

特定のコンテンツを対象とした DOMDocument 解析

強力な PHP ライブラリである「DOMDocument」を使用すると、HTML ドキュメントを正確に解析できます。特定の名前を持つすべてのタグを取得する「getElementsByTagName」とは異なり、このメソッドは XPath クエリを利用して目的の要素を効果的にターゲットにします。

特定のコンテキスト内のテキスト ノードをキャプチャ

するには特定のテキスト コンテンツを抽出する場合、プロセスには以下が含まれます。

  • 「DOMDocument::loadHTML」を使用して HTML 文字列を DOM オブジェクトにロードします。
  • 「new DOMXPath」を使用して「XPath」オブジェクトを開始します。 ($dom)".
  • ターゲット ノードを指定する XPath クエリを使用します。例:
$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');

このクエリは、すべての

を取得します。
内にネストされている「text」クラスのタグ

「foreach」ループを使用して、結果として得られた要素のリストを反復処理すると、実際のテキストを含む「nodeValue」を抽出できます。

foreach ($tags as $tag) {
    var_dump(trim($tag->nodeValue));
}

実装例

次の 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>

提供されたクエリを使用すると、出力は次のようになります:

string 'Capture this text 1' (length=19)
string 'Capture this text 2' (length=19)

This 「DOMDocument」と XPath を使用して、階層 HTML 構造内の特定のテキスト コンテンツを正確に抽出する機能を示します。

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

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