2010-11-19 4 views
2

J'ai une boucle comme ceci:Est-il possible d'accéder au nœud parent à l'intérieur de la boucle?

for $a in local:distinct-nodes($x/input/book[@stat = 'ok']) 
let $b:=string($a/../input/@docid) 

Cette retourne une chaîne vide ($ b est vide). Donc, je me demande comment je peux accéder au nœud parent dans cette situation. Je ne veux pas vraiment y accéder depuis la racine (// xxxx) car le fichier XML est assez volumineux.

+0

Bonne question, +1. Voir ma réponse pour l'explication du problème que vous avez et pour une simple correction. :) –

Répondre

2

J'ai une boucle comme ceci:

for $a in local:distinct-nodes($x/input/book[@stat = 'ok']) 
let $b:=string($a/../input/@docid) 

Cette retourne une chaîne vide ($b est vide).

Oui, c'est ce qui devrait être produit.

Tous les noeuds $ a sont book.

$a/.. 

sont input éléments

$a/../input 

devrait être input/input éléments, mais très probablement input éléments dont ont input enfants.

Qu'est-ce que vous voulez est:

$a/../@docid 
+0

Dimitre, merci pour la réponse. Je n'arrive pas à comprendre comment je pourrais manquer cette chose si simple. – user3111525

Questions connexes