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 クエリを採用することを検討してください。
実装:
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>
DOMXPath のインスタンス化 オブジェクト:
<code class="php">$xpath = new DOMXPath($dom);</code>
XPath の実行クエリ:
<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
テキスト値の取得:
<code class="php">foreach ($tags as $tag) { var_dump(trim($tag->nodeValue)); }</code>
このアプローチでは、「提供された HTML から「このテキストをキャプチャ 1」と「このテキストをキャプチャ 2」を実行します。
以上がPHP の DOMDocument と XPath を使用して特定の HTML 要素からテキストを効率的に抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。