Вы можете использовать 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
, предшествующего первому).