2010-03-09 6 views
58

XML d'entrée Mon exemple est:Obtenez enfant Nième d'un nœud en utilisant XPath

<root> 
<a> 
    <b>item</b> 
    <b>item1</b> 
    <b>item2</b> 
    <b>item3</b> 
    <b>item4</b> 
</a> 
</root> 

Je suppose que pour sélectionner un nœud b dont la position est la valeur d'une variable. Comment utiliser la valeur d'une variable pour tester la position d'un nœud?

Répondre

74

vous pouvez utiliser ceci:

/root/a/b[position()=$variable] 

la position() est de 1 à base

http://saxon.sourceforge.net/saxon6.5.3/expressions.html

+7

Rappelez-vous qu'il n'est pas indexé sur 0. Je viens de passer 2 heures à perdre mon temps à chercher quelque chose à la position 0. –

36

Les éléments suivants doivent travailler:

/root/a/b[2] 

Et si elle ne le fait pas, essayer:

/root/a/b[position()=2] 
+1

Je suis venu ici pour trouver la différence entre ces deux, pourriez-vous s'il vous plaît expliquer comment ils sont différents? – Andre

+4

'position()' fait référence à la position dans le dom [2] fait référence au deuxième résultat dans la liste des résultats. –

Questions connexes