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 ?
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 :
$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é.
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!