XPath: come selezionare il nodo con qualche attributo per indice?

Ho diversi nodes con qualche attributo particolare e ho bisogno di selezionarne uno per indice. Per esempio ho bisogno di selezionare il secondo

con la class ‘test’ – //div[@class='test'][2] non funziona.

C’è un modo per selezionare il nodo con qualche attributo per indice? Come farlo?

Questa è una FAQ .

In XPath l’operatore [] ha una precedenza più alta (si lega più forte) rispetto allo // pseudo-operatore.

Per questo motivo, l’espressione:

 //div[@class='test'][2] 

seleziona tutti gli elementi div cui attributo di class è “test” e chi (gli elementi div ) è il secondo figlio div del genitore. Questo non è quello che vuoi.

Usa :

 (//div[@class='test'])[2] 

Credo che per specifiche XML, gli attributi non sono considerati avere un ordine.
Note that the order of attribute specifications in a start-tag or empty-element tag is not significant.
Vedi qui, penso che sarebbe meglio rivedere la tua struttura in modo tale che l’ordine degli attributi non descriva nulla. Se puoi fornire ulteriori dettagli potremmo essere in grado di offrire suggerimenti.

EDIT: rileggendo il tuo post, sembra che tu stia cercando di trovare l’ordine dei nodes e non l’ordine degli attributi. L’ordine dei nodes è permesso e la tua syntax sembra discreta. In che software stai facendo questo?