Подтвердить что ты не робот

Обозначение XPath в значении атрибута

У меня есть следующий XPath для соответствия атрибутам класса:

//span[@class='amount']

Я хочу сопоставить все элементы, у которых есть атрибут класса "количество", но также могут иметь и другие классы. Я думал, что смогу сделать это:

//span[@class='*amount*'] 

но это не работает... как я могу это сделать?

4b9b3361

Ответ 1

Используйте следующее выражение:

//span[contains(concat(' ', @class, ' '), ' amount ')]

Вы можете использовать contains самостоятельно, но это также будет соответствовать классам, таким как someamount. Проверьте приведенное выше выражение на следующем входе:

<root>
  <span class="test amount blah"/>
  <span class="amount test"/>
  <span class="test amount"/>
  <span class="amount"/>
  <span class="someamount"/>
</root>

Он выберет первые четыре элемента span, но не последний.