如何在XPath中获取序列的最后一个元素?

时间:2013-04-22 07:11:31

标签: ruby xpath nokogiri

在Ruby中,我们可以访问带有负数的数组,如array[-1],以获取数组中的最后一个对象。我如何使用XPath执行此操作?

我不能这样做:

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

我在Stack Overflow上找到了一个解决方案,但这是一个只更改上限以获取元素的查询。这可能会返回最后一个项目或最后一个项目并且很流行。

如果我想在Ruby中只获得像array[-2]这样的流行元素,该怎么办?

1 个答案:

答案 0 :(得分:29)

您可以在谓词中使用last()访问XPath中的最后一个元素。

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

并使用[last()-1]作为倒数第二的位置。