Я не знаю, почему следование за запросом не работает:
//a/@href[@class='specified_string']
Попробуйте наоборот:
//a[@class='specified_string']/@href
В конце концов, класс
является атрибутом
, а не атрибут атрибута href
.
Атрибут не может иметь атрибутов. Только элементы могут иметь атрибуты.
Исходное выражение XPath:
//a/@href[@class='specified_string']
выбирает любой атрибут href
любого элемента a
, , так что атрибут href
имеет атрибут класс
, значение которого 'заданная_строка'
.
Вы хотите :
//a[@class='specified_string']/@href
, то есть: атрибут href
любого элемента a
, который имеет атрибут class
со значением ] 'заданная_строка'
.
Вы в основном говорите, что ищете атрибут с именем href
, атрибут которого (это ошибка) class
должно быть равно заданная_строка
.
Но вам нужно найти атрибут href
элемента a
, чей атрибут class
равен specified_string
.
(ответ ndim перекрывает мой)