2013-04-22 9 views
11

In Ruby è possibile accedere a un array con numeri negativi come array[-1] per ottenere l'ultimo oggetto nell'array. Come faccio a farlo usando XPath?Come ottenere l'ultimo elemento di una sequenza in XPath?

Non posso fare questo:

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

ho trovato una soluzione qui su Stack Overflow, ma questa è una domanda che cambia solo il limite superiore per ottenere elementi. Questo potrebbe restituire un ultimo elemento o ultimo elemento e previo.

Cosa succede se voglio ottenere solo l'elemento precedente come array[-2] in Ruby?

risposta

25

È possibile accedere all'ultimo elemento in XPath utilizzando last() in un predicato.

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

E utilizzare [last()-1] per il secondo-a-ultima posizione.

+10

Utilizzare '[ultimo() - 1]' per la penultima posizione. –

+1

Grazie, ragazzi. Sei tutto fantastico :) –

Problemi correlati