Maison > interface Web > tutoriel CSS > Comment puis-je trouver des éléments DOM par nom de classe en PHP ?

Comment puis-je trouver des éléments DOM par nom de classe en PHP ?

Linda Hamilton
Libérer: 2025-01-03 14:20:40
original
827 Les gens l'ont consulté

How Can I Find DOM Elements by Class Name in PHP?

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

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')]");
Copier après la connexion

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\"]");
Copier après la connexion

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

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 ')]";
Copier après la connexion

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!

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