2010-11-19 3 views
2

У меня есть цикл, как это:Возможно ли получить доступ к родительскому узлу внутри цикла?

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

Это возвращает пустую строку ($ Ь пусто). Итак, мне интересно, как я могу получить доступ к родительскому узлу в этой ситуации. Я действительно не хочу получать к нему доступ из root (// xxxx), потому что файл XML довольно велик.

+0

Хороший вопрос, +1. См. Мой ответ для объяснения проблемы, которую вы имеете, и для простой коррекции. :) –

ответ

2

У меня есть цикл, как это:

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

Это возвращает пустую строку ($b является пустой).

Да, это то, что должно быть произведено.

Все $ a узлы book элементов.

$a/.. 

являются input элементами

$a/../input 

должен быть input/input элементов, но, скорее всего, input элементов не имеют input детей.

Что вы хотите:

$a/../@docid 
+0

Dimitre, спасибо за ответ. Я не могу понять, как я мог пропустить эту простую вещь. – user3111525

Смежные вопросы