使用嵌套循环

时间:2012-07-07 06:52:28

标签: for-loop xquery

嵌套循环代码:

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循环,我得到这个序列加倍。那么如何通过使用嵌套循环来获得单次结果。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

只需使用

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

<强>解释

原始代码产生的重复是由于:

for $s in $message

由于$message是包含两个项目的序列,因此for表达式的主体将执行两次。此内部for不是必需的,因为此$s表达式的主体中根本未引用变量for