Вы можете использовать position()
, чтобы пропустить «первый», но в зависимости от того, какой элемент вас интересует и каков контекст, вам может потребоваться небольшое изменение вашего XPATH.
Например, если вы хотите обратиться ко всем элементам li
и получить все, кроме первого, вы можете использовать:
//li[position()>1]
и все будет работать как положено, возвращая все элементы li
, кроме первого.
Однако, если вы хотите обратиться ко всем элементам a
, вам нужно немного изменить XPATH. В контексте выражения //a[position()>1]
каждый из элементов a
будет иметь position()
, равный 1, а last()
будет иметь значение true. Таким образом, он всегда будет возвращать каждый a
и не будет пропускать первый.
Вам нужно обернуть выражение, которое выбирает a
в скобках, чтобы сгруппировать их в набор узлов, а затем применить фильтр предикатов к позиции.
(//a)[position()>1]
В качестве альтернативы вы также можете использовать выражение вроде этого:
//a[preceding::a]
Это найдет все элементы a
, кроме первого (поскольку перед первым элементом нет a
).