2013-04-22 332 views
11

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

我不能做到这一点:

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

我发现这里对堆栈溢出的解决方案,但是这是一个查询,只是改变了上限,以获得元素。这可能会返回最后一个项目或最后一个项目和前缀。

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

回答

25

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

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

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

+10

使用'[last() - 1]'倒数第二个位置。 – 2013-04-22 12:31:28

+1

谢谢,伙计们。你们都很棒:) – 2013-04-23 11:08:19