Выбор любого другого узла с XPATH - PullRequest
11 голосов
/ 23 ноября 2010

Задано произвольное количество узлов для выбора:

<root>
  <foo>1</foo>
  <foo>2</foo>
  <foo>3</foo>
  <foo>4</foo>
  <!-- ... -->
<root>

Как выбрать все остальные foo, чтобы получить foo [1], foo [3], ...?

Ответы [ 2 ]

20 голосов
/ 23 ноября 2010

Попробуйте

/root/foo[position() mod 2 = 1]

Не знаю, будет ли это работать правильно, может понадобиться 0. Я забыл, если позиция начинается с 0 или 1

0 голосов
/ 23 июня 2017

position () возвращает число, указывающее положение элемента относительно других дочерних элементов.Функция mod возвращает «остаток» от деления: 5 mod 2 = 1;6 мод 2 = 0;9 мод 2 = 1;10 мод 2 = 0;

также см .: https://en.wiktionary.org/wiki/modulo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...