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 ループを使用することで、このシーケンスを 2 倍にしています。ネストされたループを使用して、一度だけ結果を取得する方法。

4

2 に答える 2

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 に答える
0

使用するだけです:

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

説明:

元のコードに起因する重複は、次の理由によるものです。

for $s in $message

$messageは 2 つの項目を持つシーケンスであるため、for式の本体は 2 回実行されます。for変数はこの式$sの本体でまったく参照されないため、このインナーは必要ありません。for

于 2012-07-07T16:21:07.113 に答える