Maison >développement back-end >tutoriel php >Comment puis-je extraire efficacement du texte spécifique du HTML à l'aide de PHP DOMDocument et DOMXpath ?
Analyse HTML avec PHP DOMDocument
L'utilisation de la classe DOMDocument en PHP fournit une méthode plus efficace et plus fiable pour analyser le HTML par rapport à l'utilisation d'expressions régulières . Pour extraire du texte spécifique d'un document HTML, la classe DOMXpath joue un rôle crucial.
Exemple :
Considérez la chaîne HTML suivante :
<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>
Notre objectif est de récupérer le texte « Capturer ce texte 1 » et « Capturer ce texte 2 ».
Approche de requête XPath :
Au lieu de s'appuyer sur DOMDocument ::getElementsByTagName, qui récupère toutes les balises portant un nom donné, XPath nous permet de cibler des éléments spécifiques en fonction de leur structure.
<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); $xpath = new DOMXPath($dom);</code>
En utilisant XPath, nous pouvons exécuter la requête suivante :
<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]'); foreach ($tags as $tag) { var_dump(trim($tag->nodeValue)); }</code>
Cette requête récupère toutes les balises div avec la classe « texte » qui sont imbriquées dans les balises div avec la classe « main ».
Sortie :
string 'Capture this text 1' (length=19) string 'Capture this text 2' (length=19)
Cela démontre l'efficacité de l'utilisation de DOMDocument et DOMXpath de PHP pour une analyse HTML précise et une extraction de contenu spécifique.
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!