はじめに:
PHP DOM を使用した HTML の解析は、特に難しい場合があります。特定の要件に対処する場合。この記事では、指定されたクラスを持つ要素からテキストを抽出し、それを構造化配列に編成するソリューションについて説明します。
シナリオ:
次の HTML コンテンツを考えてみましょう:
<p class="Heading1-P"> <span class="Heading1-H">Chapter 1</span> </p> <p class="Normal-P"> <span class="Normal-H">This is chapter 1</span> </p>
目的は、 からテキストを抽出することです。 「Heading1-H」クラスの要素を $Heading 配列に、「Normal-H」クラスの要素のテキストを $content 配列に追加すると、次のようになります。
$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3']; $content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];
DOMDocument を使用した解決策および DOMXPath:
このタスクに取り組むために DOMDocument と DOMXPath を使用します。
// Load HTML into DOMDocument $dom = new DOMDocument(); $dom->loadHTML($html); // Create DOMXPath object $xpath = new DOMXPath($dom); // Get elements with desired class using XPath $xpathQuery = "//*[@class='$class']"; $elements = $xpath->query($xpathQuery); // Extract text from elements and store in arrays $headings = []; $contents = []; foreach ($elements as $element) { $nodes = $element->childNodes; foreach ($nodes as $node) { $headings[] = $node->nodeValue; } } var_dump($headings);
このソリューションは HTML を効果的に解析し、必要な配列を返します。
注:
PHP DOM は HTML 操作により構造化されたプログラム的なアプローチを提供するため、このタスクに jQuery を使用することはお勧めできません。
以上がDOMDocument を使用して PHP の特定のクラスを持つ要素からテキストを抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。