Как получить последний элемент последовательности в XPath?

в Ruby мы можем получить доступ к массиву с отрицательными числами, такими как array[-1] чтобы получить последний объект в массиве. Как это сделать с помощью XPath?

Я не могу сделать это:

result = node.xpath('.//ROOT/TAG[-1]/KEY_NAME')

Я нашел решение здесь, на переполнение стека, но это запрос, который просто изменяет верхний предел для получения элементов. Это может вернуть один последний элемент или последний элемент и prevous.

Что делать, если я хочу получить только элемент prevous, как array[-2] в Ruby?

1 ответов


вы можете получить доступ к последнему элементу в XPath, используя last() в предикате.

node.xpath('.//ROOT/TAG[last()]/KEY_NAME')

и использовать [last()-1] на предпоследней позиции.