Maison > Article > développement back-end > Comment extraire efficacement le texte d'éléments HTML spécifiques à l'aide de DOMDocument et XPath de PHP ?
Analyse HTML avec le HTML DOMDocument de PHP
Question :
En utilisant l'objet DOMDocument, capturez texte dans des éléments HTML spécifiques. Par exemple, extraire « Capturer ce texte 1 » et « Capturer ce texte 2 » du code HTML suivant :
<div class="main"> <div class="text"> Capture this text 1 </div> </div> <div class="main"> <div class="text"> Capture this text 2 </div> </div>
Réponse :
Utilisation de DOMDocument::getElementsByTagName récupérer toutes les balises portant un nom spécifique peut s'avérer inefficace pour cette tâche. Au lieu de cela, envisagez d'utiliser une requête XPath sur le document, en tirant parti de la classe DOMXPath.
Mise en œuvre :
Charger du HTML dans un DOMDocument Objet :
<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>
Instancier DOMXPath Objet :
<code class="php">$xpath = new DOMXPath($dom);</code>
Exécuter XPath Requête :
<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
Récupérer les valeurs de texte :
<code class="php">foreach ($tags as $tag) { var_dump(trim($tag->nodeValue)); }</code>
Cette approche extrait efficacement " Capturez ce texte 1" et "Capturez ce texte 2" à partir du code HTML fourni.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!