Как пропустить первый элемент с таким же именем класса, который также имеет условие "Больше, чем"
Я хочу выбрать кнопку, которая содержит число больше 1, поэтому я написал следующее:
//*mobile-list-outcome[1]/div/div[2][number(.) > 1]
Моя проблема в том, что я хочу избежать первого элемента, потому что он не имеет значения, мое решение заключалось в том, что я попытался поставить index [1] в конце:
//*mobile-list-outcome[1]/div/div[2][number(.) > 1][1]
но все, что он сделал, это уменьшил найденные элементы до 0, есть идеи?
ПК: Я также пробовал поставить и между двумя условиями, и ничего не получилось.
1 ответ
Чтобы пропустить первый элемент, вы можете использовать position()
индекс. В твоем случае:
//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[number(.)>1][position()>1]
или
//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[number(.)>1][not(position()=1)]
Обратите внимание, что следующее выражение должно работать без number()
функция:
//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[.>1][position()>1]
Боковое примечание: вы можете использовать ()
чтобы выбрать первый элемент страницы, отвечающий вашим условиям:
(//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[.>1])[1]
РЕДАКТИРОВАТЬ: 3 варианта тестирования:
//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div[position()>1]/div[2]/text()[.>1]
(//*/sb-mobile-odds/div//sb-mobile-list-outcome[1]/div/div[2]/text()[.>1])[position()>1]
//div[@class="sb-event-list__selection sb-event-list__selection--european"][position()>1]/div[contains(@class,"sb-event-list__selection__outcome-value")][.>1]