Comment extraire du texte d'éléments avec une classe spécifique en PHP à l'aide de DOMDocument ?

Susan Sarandon
Libérer: 2024-11-12 10:24:01
original
285 Les gens l'ont consulté

How to Extract Text from Elements with a Specific Class in PHP Using DOMDocument?

Aplatir le texte des éléments avec une classe spécifiée

Introduction :

L'analyse HTML à l'aide de PHP DOM peut être un défi, en particulier lorsqu'il s'agit de besoins spécifiques. Cet article explore une solution pour extraire le texte d'éléments avec une classe désignée et l'organiser en tableaux structurés.

Scénario :

Considérez le contenu HTML suivant :

<p class="Heading1-P">
    <span class="Heading1-H">Chapter 1</span>
</p>
<p class="Normal-P">
    <span class="Normal-H">This is chapter 1</span>
</p>
Copier après la connexion

Le but est d'extraire le texte de les éléments avec la classe "Heading1-H" dans le tableau $heading et le texte de ceux avec la classe "Normal-H" dans le tableau $content, ce qui donne :

$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3'];
$content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];
Copier après la connexion

Solution utilisant DOMDocument et DOMXPath :

Nous utilisons DOMDocument et DOMXPath pour résoudre ce problème tâche.

// Load HTML into DOMDocument
$dom = new DOMDocument();
$dom->loadHTML($html);

// Create DOMXPath object
$xpath = new DOMXPath($dom);

// Get elements with desired class using XPath
$xpathQuery = "//*[@class='$class']";
$elements = $xpath->query($xpathQuery);

// Extract text from elements and store in arrays
$headings = [];
$contents = [];
foreach ($elements as $element) {
    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
        $headings[] = $node->nodeValue;
    }
}

var_dump($headings);
Copier après la connexion

Cette solution analyse efficacement le code HTML et renvoie les tableaux souhaités.

Remarque :

L'utilisation de jQuery pour cette tâche n'est pas recommandé, car PHP DOM fournit une approche plus structurée et programmatique de la manipulation HTML.

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