Maison > développement back-end > tutoriel php > Comment puis-je sélectionner efficacement les éléments DOM par nom de classe à l'aide de PHP ?

Comment puis-je sélectionner efficacement les éléments DOM par nom de classe à l'aide de PHP ?

Susan Sarandon
Libérer: 2024-12-05 20:27:11
original
273 Les gens l'ont consulté

How Can I Efficiently Select DOM Elements by Class Name Using PHP?

Obtenir des éléments DOM par nom de classe à l'aide de PHP DOM

Lorsque vous travaillez avec PHP DOM, il est crucial d'obtenir des éléments spécifiques dans un nœud en fonction de leur classe. Explorons les meilleures approches pour y parvenir :

XPath Selector

$dom = new DomDocument();<br>$dom->load($filePath);<br>$finder = nouveau DomXPath($dom);<br>$classname = "ma-classe";<br>$nodes = $finder->query("//*[contains(@class, '$classname')]");<br>

Cette approche utilise XPath pour sélectionner tous les éléments avec l'attribut de classe spécifié.

Zend_Dom_Query CSS Sélecteur

Si vous préférez la syntaxe du sélecteur CSS, Zend_Dom_Query offre une solution pratique :

$finder = new Zend_Dom_Query($html);<br>$classname = 'my-class ';<br>$nœuds = $finder->query("*[class~='$classname']");<br>

Mise à jour : version XPath de *[@class~=' my-class'] Sélecteur CSS

L'analyse du sélecteur CSS à l'aide de Zend_Dom_Query révèle un XPath équivalent expression :

$nodes = $finder->query("[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]" );<br>

En utilisant directement ce XPath, vous pouvez rechercher des éléments contenant la classe spécifiée sans utiliser Zend_Dom_Query.

Lors de la sélection d'éléments par classe, il convient de noter que si le type d'élément est connu, vous pouvez remplacer le * par le nom de la balise correspondante, réduisant ainsi la recherche et améliorant l'efficacité.

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