2013-04-22 10 views
11

Rubyでは、array[-1]のような負の数を持つ配列にアクセスして配列の最後のオブジェクトを取得できます。 XPathを使用してこれを行うにはどうすればよいですか?XPathでシーケンスの最後の要素を取得する方法は?

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

は、私がここにスタックオーバーフローの解決策を見つけたが、それはただの要素を取得するための上限を変更するクエリです:

私はこれを行うことはできません。これは、最後の1つのアイテムまたは最後のアイテムを返すことができ、より多く存在する可能性があります。

ルビーでarray[-2]のような先行要素だけを取得したいのですが?

答えて

25

述語でlast()を使用して、XPathの最後の要素にアクセスできます。

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

最後に2番目の位置には[last()-1]を使用してください。

+10

2番目から最後までの位置に '[last() - 1]'を使用します。 –

+1

ありがとう、皆さん。あなたはすべて素晴らしいです:) –

関連する問題