1

嵌套循环代码:

xquery version "1.0";
let $message := (1, 2)
for $s in $message
    let $message1 := count($message)
    for $i in ((1 to $message1))

        return 
            <results>
                <count>{$i}</count>
            </results>

通过使用这个嵌套的 for 循环,我得到这个序列加倍。那么如何使用嵌套循环获得单次结果。

4

2 回答 2

0

只需使用

  for $i in 1 to count($message)
    return 
        <results>
            <count>{$i}</count>
        </results>

说明

原始代码导致的重复是由于以下原因:

for $s in $message

因为$message是一个包含两项的序列,所以for表达式的主体被执行了两次。这个内部for不是必需的,因为在这个表达式$s的主体中根本没有引用变量。for

于 2012-07-07T16:21:07.113 回答
0

我不明白你为什么首先使用循环。如果您只想要消息计数:

xquery version "1.0";
let $message := (1, 2)
let $i := count( $message )

return 
    <results>
        <count>{$i}</count>
    </results>
于 2012-07-07T07:37:22.047 回答