web-dev-qa-db-fra.com

Requête XPath pour sélectionner tous les attributs href de la balise <a>, attribut 'classe' égal à la chaîne spécifiée

Je ne sais pas pourquoi la requête suivante ne fonctionne pas:

//a/@href[@class='specified_string']
18
l245c4l

Essayez-le dans l'autre sens:

//a[@class='specified_string']/@href

Après tout, class est un attribut de l'élément <a> et non un attribut de l'attribut href.

42
ndim

Un attribut ne peut pas avoir d'attribut. Seuls les éléments peuvent avoir des attributs.

L'expression XPath d'origine:

//a/@href[@class='specified_string'] 

sélectionne tout attribut href de tout élément a, tel que l'attribut href ait un attribut classdont la valeur est 'specified_string'

Ce que tu veux c'est :

//a[@class='specified_string']/@href 

c’est-à-dire: l’attribut href de tout élément a qui a class atribute avec la valeur 'specified_string'.

5
Dimitre Novatchev

Vous dites en gros que vous recherchez un attribut nommé href, dont l'attribut (c'est l'erreur) class devrait être égal à specified_string.

Mais vous devez rechercher l'attribut href d'un élément a, dont l'attribut class est specified_string

(La réponse de Ndim recouvrit la mienne)

1
topskip

Il n'y a pas d'attribut de classe présent dans la balise anchor, je n'ai que href. Il est identifié par //*[@href='value'] mais //*a[@href='value'] ne fonctionne pas

0
Umamaheswar