Maison > développement back-end > tutoriel php > Comment sélectionner correctement une classe CSS avec XPath ?

Comment sélectionner correctement une classe CSS avec XPath ?

Patricia Arquette
Libérer: 2024-12-08 22:46:14
original
718 Les gens l'ont consulté

How to Correctly Select a CSS Class with XPath?

Sélectionner une classe CSS avec XPath

Dans le contexte du web scraping, cibler avec précision des éléments spécifiques en fonction de leurs classes CSS est crucial. Bien que les sélecteurs CSS soient simples lorsque vous travaillez avec HTML, XPath devient nécessaire lors du traitement de documents XML ou de l'utilisation de techniques avancées de web scraping.

Problème : sélection d'une seule classe avec XPath

Cette question découle de la devez sélectionner des éléments en fonction uniquement de leur classe "date" à l'aide de XPath. Cependant, l'extrait de code fourni produit des résultats inattendus.

//[@class="date"]
Copier après la connexion

Solution : l'équivalent XPath correct

Pour sélectionner correctement les éléments avec une classe spécifique dans XPath, la syntaxe suivante doit être utilisée :

//*[contains(concat(" ", normalize-space(@class), " "), " foo ")]
Copier après la connexion

Dans cette expression :

  • normalize-space (@class) supprime le début et la fin espaces et réduit plusieurs espaces en un seul, garantissant que l'attribut de classe est formaté de manière cohérente.
  • concat(" ", normalize-space(@class), " ") ajoute des espaces autour de la valeur de classe normalisée pour la rendre comparable au nom de la classe cible.
  • contient(...) recherche le nom de la classe cible dans la valeur de l'attribut de classe modifiée.

Éviter les erreurs Approches

Deux sélecteurs XPath courants mais défectueux à éviter incluent :

  • //*[@class="date"] : ne prend pas en compte les éléments avec plusieurs classes.
  • //*[contains(@class, "date")] : fait correspondre les éléments dont les noms de classe contiennent "date", comme "foobar", qui est incorrect.

Crédit

La solution fournie ici est attribuée à un autre grattoir Web qui a publié un article de blog précieux traitant de ce problème spécifique. Notre gratitude leur va pour avoir partagé leurs idées.

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