Loops 表达式中表达式的xquery计数
问题是,对于父项未知的表达式,如何计算a中的for表达式 代码:Loops 表达式中表达式的xquery计数,loops,for-loop,xquery,Loops,For Loop,Xquery,问题是,对于父项未知的表达式,如何计算a中的for表达式 代码: 让$act:=( 我认为您只需要将where子句更改为使用where$count/祖先::act是$data,即检查祖先act元素是否是绑定到外部for表达式的$data变量的元素。我认为您只需要更改where子句使用,其中$count/祖先::act是$data,即检查祖先act元素是否是绑定到外部for表达式的$data变量的元素。在您的代码中,当您对元素act进行迭代时,它们将被视为不同的片段。因此,您应该首先合并所有act
让$act:=(
我认为您只需要将where
子句更改为使用where$count/祖先::act是$data
,即检查祖先act
元素是否是绑定到外部for
表达式的$data
变量的元素。我认为您只需要更改where
子句使用,其中$count/祖先::act是$data
,即检查祖先act
元素是否是绑定到外部for
表达式的$data
变量的元素。在您的代码中,当您对元素act进行迭代时,它们将被视为不同的片段。因此,您应该首先合并所有act第二个问题是当你们在act元素上迭代时,它总是从一开始计算数据元素的数量
let $act :=(
<act time="1231">
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
</act>,
<act time="51292">
<state>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
</state>
</act>,
<act time="41212">
<state1>
<state2>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
</state2>
</state1>
</act>
)
let $markAct:=<mainact>{for $data in $act
return
$data
}</mainact>
let $data:=
for $in in $markAct//act
return <act time="{$in/@time}">{
for $data in $in//data
return <data value="{$data}">{count($data/preceding::data)+1}</data>
}</act>
return $data
让$act:=(
你好
你好
你好
你好
你好
你好
,
世界
世界
世界
世界
世界
,
3.
3.
3.
3.
3.
)
让$markAct:={for$act中的$data
返回
$data
}
let$data:=
在$markAct//act中输入$in
返回{
对于$in//data中的$data
返回{count($data/preference::data)+1}
}
返回$data
在您的代码中,当您在元素act上迭代时,它们会被视为不同的片段。因此,您应该首先将所有act合并到一个标记中,因为我使用的是元素mainact。第二个问题是,当您在act元素上迭代时,它总是开始计算数据元素的表1
let $act :=(
<act time="1231">
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
</act>,
<act time="51292">
<state>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
</state>
</act>,
<act time="41212">
<state1>
<state2>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
</state2>
</state1>
</act>
)
let $markAct:=<mainact>{for $data in $act
return
$data
}</mainact>
let $data:=
for $in in $markAct//act
return <act time="{$in/@time}">{
for $data in $in//data
return <data value="{$data}">{count($data/preceding::data)+1}</data>
}</act>
return $data
让$act:=(
你好
你好
你好
你好
你好
你好
,
世界
世界
世界
世界
世界
,
3.
3.
3.
3.
3.
)
让$markAct:={for$act中的$data
返回
$data
}
let$data:=
在$markAct//act中输入$in
返回{
对于$in//data中的$data
返回{count($data/preference::data)+1}
}
返回$data
<act time="1231">
<data value="hello">1</data>
<data value="hello">2</data>
</act>,
<act time="51292">
<data value="world">3</data>
<data value="world">4</data>
</act>,
<act time="41212">
<data value="3">5</data>
<data value="3">6</data>
</act>
let $act :=(
<act time="1231">
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
<data value="2">hello</data>
</act>,
<act time="51292">
<state>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
<data value="2">world</data>
</state>
</act>,
<act time="41212">
<state1>
<state2>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
<data value="2">3</data>
</state2>
</state1>
</act>
)
let $markAct:=<mainact>{for $data in $act
return
$data
}</mainact>
let $data:=
for $in in $markAct//act
return <act time="{$in/@time}">{
for $data in $in//data
return <data value="{$data}">{count($data/preceding::data)+1}</data>
}</act>
return $data