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