Maison >développement back-end >tutoriel php >Comment DOMDocument et XPath peuvent-ils être utilisés pour cibler et extraire du contenu textuel spécifique à partir de HTML ?

Comment DOMDocument et XPath peuvent-ils être utilisés pour cibler et extraire du contenu textuel spécifique à partir de HTML ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-30 09:51:271019parcourir

How can DOMDocument and XPath be used to Target and Extract Specific Text Content from HTML?

Analyse DOMDocument pour cibler un contenu spécifique

L'utilisation de "DOMDocument", une puissante bibliothèque PHP, permet une analyse précise des documents HTML. Contrairement à "getElementsByTagName", qui récupère toutes les balises portant un nom spécifique, cette méthode utilise des requêtes XPath pour cibler efficacement les éléments souhaités.

Capturer des nœuds de texte dans des contextes spécifiques

Pour extraire un contenu textuel spécifique, le processus implique :

  • Charger la chaîne HTML dans un objet DOM à l'aide de "DOMDocument::loadHTML".
  • Initier un objet "XPath" à l'aide de "new DOMXPath ($dom)".
  • Utilisation d'une requête XPath qui spécifie les nœuds cibles. Par exemple :
$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');

Cette requête récupère tous les

balises avec la classe "text" imbriquées dans
balises avec la classe "main".

Itérer dans la liste d'éléments résultante à l'aide d'une boucle "foreach" permet d'extraire "nodeValue", qui contient le texte réel :

foreach ($tags as $tag) {
    var_dump(trim($tag->nodeValue));
}

Exemple de mise en œuvre

Considérez l'extrait HTML suivant :

<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>

En utilisant la requête fournie, le résultat serait :

string 'Capture this text 1' (length=19)
string 'Capture this text 2' (length=19)

Ceci démontre la capacité d'extraire avec précision du contenu textuel spécifique au sein d'une structure HTML hiérarchique à l'aide de "DOMDocument" et XPath.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn