Maison >développement back-end >tutoriel php >Comment récupérer efficacement les éléments DOM par nom de classe en PHP ?

Comment récupérer efficacement les éléments DOM par nom de classe en PHP ?

DDD
DDDoriginal
2024-12-04 12:36:14491parcourir

How to Efficiently Retrieve DOM Elements by Class Name in PHP?

Récupération d'éléments DOM en fonction du nom de classe

Dans PHP DOM, l'extraction d'éléments avec des noms de classe spécifiques est essentielle. Cette question présente un défi auquel sont confrontés les développeurs : trouver la méthode optimale pour isoler de tels éléments au sein d'un nœud DOM.

Pour résoudre ce problème, plusieurs approches sont présentées :

  • Sélecteur XPath : Une solution concise consiste à utiliser la syntaxe XPath. Prenons l'exemple suivant :
$dom = new DomDocument();
$dom->load($filePath);
$finder = new DomXPath($dom);
$classname = "my-class";
$nodes = $finder->query("//*[contains(@class, '$classname')]");
  • Sélecteur CSS avec Zend_Dom_Query : Pour des scénarios plus complexes, il est recommandé d'utiliser Zend_Dom_Query. Sa prise en charge des sélecteurs CSS permet une récupération pratique des éléments :
$finder = new Zend_Dom_Query($html);
$classname = 'my-class';
$nodes = $finder->query("*[class~=\"$classname\"]");

De plus, pour les scénarios impliquant des sélecteurs XPath avec des critères de nom de classe, une version plus raffinée est disponible :

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

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:
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