Aller au contenu

Comment extraire un élément dont le nom commence par un signe de ponctuation avec XPath ?

Antoine Brisset
Antoine Brisset
Temps de lecture : 1 min
Comment extraire un élément dont le nom commence par un signe de ponctuation avec XPath ?
Photo by Towfiqu barbhuiya / Unsplash

Table des matières

La semaine dernière, alors que j'étais en train de développer un petit script Ruby pour des besoins de scraping, je suis resté bloqué quelques minutes sur un problème que je n'avais encore jamais rencontré.

Il fallait que je récupére la valeur d'un attribut HTML avec XPath (jusque là tout va bien), mais cet attribut commençait par un signe de ponctuation.

En l'occurrence, les deux-points : <div :event="{...}">.

Pourquoi cette syntaxe ? Aucune idée. L'explication est peut-être à chercher du côté du framework JS utilisé par le site en question (Vue.js).

Au final, peu importe.

La présence des deux-points rendait l'expression XPath ci-dessous invalide.

//div/@:event

❌ expression invalide !

J'ai donc fouillé un peu sur le web pour trouver comment faire et voilà la solution que j'ai trouvée.

//div/@*[name()=':event']

✅ expression valide !

L'astuce, c'est donc d'utiliser la fonction name().

L'expression XPath //div/@*[name()=':event'] va sélectionner tous les attributs qui sont contenus dans une balise div et qui ont pour nom la chaine de caractères ":event".

Si je voulais aller plus loin et sélectionner tous les attributs commençant par les deux-points, je pourrais même écrire :

//div/@*[starts-with(name(), ':')]

Petite précision : l'astérisque * indique ici de sélectionner tous les éléments du contexte courant répondant aux critères définis par les fonctions starts-with() et name().

Et voilà ! C'est tout pour aujourd'hui :)

XPath

Antoine Brisset Twitter

Consultant SEO depuis 2010. Je traque les clics inutiles et j'automatise les tâches répétitives pour gagner du temps dans mon quotidien de travailleur du web.


Articles Similaires

Membres Public

Balise strong dans une balise hn : détectez la suroptimisation avec Screaming Frog !

Quand je reçois des contenus au format Word ou Google Docs, il arrive souvent qu'en les collant dans l'éditeur WordPress (ou un autre éditeur WYSIWIG), les titres soient automatiquement mis en gras. Ce qui donne par exemple ce type de code HTML : <h2><

Balise strong dans une balise hn : détectez la suroptimisation avec Screaming Frog !
Membres Public

Attention à l'utilisation de "contains" dans tes requêtes XPath

Aujourd'hui, j'aimerais attirer ton attention sur un petit détail que tu dois garder en tête quand tu joues avec XPath. Quand tu utilises la fonction contains,  pour vérifier par exemple si une balise contient une classe CSS spécifique, il y a de fortes chances que tu

Attention à l'utilisation de "contains" dans tes requêtes XPath
Membres Public

XPath : 4 raccourcis que tu utilises sans même le savoir

Cette semaine, je suis tombé sur une excellente présentation de Jonathan Moore au Brighton SEO à propos de XPath : The Xpath To Discovery. Des rappels sur les fondamentaux, des astuces, des cas d'usage avec Screaming Frog... je te conseille vraiment de la lire. En la parcourant, je me

XPath : 4 raccourcis que tu utilises sans même le savoir