Maison > développement back-end > tutoriel php > Comment extraire efficacement le texte d'éléments HTML spécifiques à l'aide de DOMDocument et XPath de PHP ?

Comment extraire efficacement le texte d'éléments HTML spécifiques à l'aide de DOMDocument et XPath de PHP ?

Barbara Streisand
Libérer: 2024-11-02 08:48:29
original
522 Les gens l'ont consulté

How to Efficiently Extract Text from Specific HTML Elements Using PHP's DOMDocument and XPath?

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

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 :

  1. 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>
    Copier après la connexion
  2. Instancier DOMXPath Objet :

    <code class="php">$xpath = new DOMXPath($dom);</code>
    Copier après la connexion
  3. Exécuter XPath Requête :

    <code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
    Copier après la connexion
  4. Récupérer les valeurs de texte :

    <code class="php">foreach ($tags as $tag) {
     var_dump(trim($tag->nodeValue));
    }</code>
    Copier après la connexion

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!

source:php.cn
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