Recherche d'éléments par nom de classe dans le DOM
Lorsque vous travaillez avec un nœud PHP DOM, vous devrez peut-être accéder aux sous-éléments en fonction de leur noms de classes. Pour ce faire, plusieurs approches sont disponibles :
Sélecteur XPath
Les sélecteurs XPath vous permettent d'interroger des documents XML ou HTML en utilisant la syntaxe XPath. Vous pouvez utiliser l'expression XPath suivante pour obtenir des éléments avec un nom de classe spécifique :
//*[contains(@class, '$classname')]
Remplacez $classname par le nom de la classe cible. Par exemple :
$dom = new DomDocument(); $dom->load($filePath); $finder = new DomXPath($dom); $classname = "my-class"; $nodes = $finder->query("//*[contains(@class, '$classname')]");
Zend_Dom_Query
Zend_Dom_Query fournit un moyen flexible d'interroger des documents HTML ou XML à l'aide de la syntaxe de sélection CSS. Il prend en charge divers sélecteurs, notamment le sélecteur d'attribut de classe. Pour utiliser Zend_Dom_Query :
$finder = new Zend_Dom_Query($html); $classname = 'my-class'; $nodes = $finder->query("*[class~=\"$classname\"]");
Sélecteur CSS
PHP ne prend pas en charge nativement les sélecteurs CSS. Cependant, vous pouvez utiliser une bibliothèque externe telle que Simple HTML DOM Parser pour analyser le HTML et utiliser des sélecteurs CSS pour rechercher des éléments. Par exemple :
$html = new simple_html_dom(); $html->load($htmlDocument); $elements = $html->find('.my-class');
Version XPath du sélecteur CSS [*[@class~='my-class']
Cette approche implique l'utilisation de Xpath pour exécuter un expression quelque peu complexe qui émule le sélecteur CSS [[@class~='my-class']* :
$xpath = "//*[contains(concat(' ', normalize-space(@class), ' '), ' my-class ')]";
En fin de compte, la meilleure approche pour obtenir des éléments DOM par nom de classe dépend de vos besoins spécifiques et des ressources disponibles. dans votre environnement PHP.
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!