2010-07-06 5 views
1

Quand j'ai 2 ensemble de noeuds avec le même nom d'élément pour ex:Comment obtenir nœuds à l'aide XPath

<contacts> 
    <names> 
     ... 
    </names> 
    <names> 
     ... 
    </names> 
</contacts> 

Normalement j'utiliser //contacts/names pour obtenir le nœud, mais comment puis-je faire s'ils ont la même nom comment puis-je obtenir la deuxième ou la première ou la nième?

+0

Bonne question (+1). Voir ma réponse pour une solution complète et une explication de ce qu'il faut éviter. :) –

Répondre

0

Vous pouvez le faire pour obtenir le premier et/ou le second en particulier :

//contacts/names[1] 
//contacts/names[2] 
0

Utilisez // contacts/noms [n] pour obtenir le nième nœud. Par exemple: // contacts/noms [1] obtient le premier nom alors que // contacts/noms [2] obtient le second nom, etc.

1

Pour l'utilisation du document XML fourni:

/contacts/names[1] 

le sélectionne au-dessus du premier élément names. Ce qui précède sélectionne le deuxième élément names.

Essayez d'éviter d'utiliser l'abréviation // autant que possible, car il est généralement fait totalement inefficace, tous les (sous) arbre roted dans le nœud de contexte à parcourir.

Questions connexes