Что XPath должен выбрать диапазон узлов?

У меня есть XML-файл, это структурировано как это:

 <foo>
     <bar></bar>
     <bar></bar>
     ...
</foo>

Я не знаю, как захватить диапазон узлов. Кто-то мог дать мне пример выражения XPath, которое захватывает узлы панели 100-200?

38
задан phantomraa 22 May 2019 в 06:59
поделиться

2 ответа

Используйте :

/*/bar[position() >= 100 and not(position() > 200)]

Обратите внимание на :

  1. Выбраны именно элементы панели в позициях от 100 до 200 (включительно).

  2. Вычисление этого выражения XPath может быть во много раз быстрее, чем выражение, использующее сокращение // , потому что последнее вызывает полное сканирование дерева, корнем которого является узел контекста. Всегда старайтесь избегать использования аббревиатуры // в тех случаях, когда это возможно.

67
ответ дан 27 November 2019 в 03:23
поделиться
//foo/bar[100 <= position() and position() < 200]
10
ответ дан 27 November 2019 в 03:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: