Выбор элементов, атрибут которых начинается с чего-то в XPath

86

Как сказано в заголовке, можно ли в XPath выбрать элементы, которые начинаются только с определенной строки, но, возможно, не заканчиваются на нее?

Например, есть 3 элемента привязки:

<a href="buy.php/onething"></a><a href="buy.php/twothing"></a><a href="sell.php/anotherthing"></a>

Я хочу получить только элементы привязки, которые начинаются с «buy.php /». Не думаю, что будет работать следующее:

getByXPath("//a[@href='buy.php/']")

Как я могу это сделать?

Аллен Гингрич
источник

Ответы:

3

Не уверен, что это именно правильный синтаксис, но вы, вероятно, захотите использовать функцию fn: contains xpath. Другие полезные функции вы можете найти здесь:

http://www.w3schools.com/xpath/xpath_functions.asp#string

getByXPath ("// a [fn: contains (@ href / text (), 'buy.php /')]")

Майкл Базос
источник
ссылка выше мертва, но вот еще одна ссылка на функцию, которой нет: developer.mozilla.org/en-US/docs/Web/XPath/Functions
billynoah