Je ne sais pas pourquoi la requête suivante ne fonctionne pas:
//a/@href[@class='specified_string']
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
.
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 class
dont 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'
.
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)
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