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

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

Mary-Kate Olsen
リリース: 2024-10-30 09:51:27
オリジナル
1053 人が閲覧しました

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

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