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 ?

Comment puis-je extraire efficacement du texte spécifique du HTML à l'aide de PHP DOMDocument et DOMXpath ?

Susan Sarandon
Libérer: 2024-10-31 01:18:29
original
373 Les gens l'ont consulté

How can I efficiently extract specific text from HTML using PHP DOMDocument and 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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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)
Copier après la connexion

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!

Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal