是否可以访问循环内的父节点?

时间:2010-11-19 14:14:38

标签: loops xquery parent

我有一个这样的循环:

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

返回一个空字符串($ b为空)。所以,我想知道如何在这种情况下访问父节点。我真的不想从root(// xxxx)访问它,因为XML文件非常大。

1 个答案:

答案 0 :(得分: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