Можно ли получить доступ к родительскому узлу внутри цикла?

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

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

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

1 ответ

Решение

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

 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
Другие вопросы по тегам