Можно ли получить доступ к родительскому узлу внутри цикла?
У меня есть такой цикл:
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