为什么
for $i in (0 to 3)
return element color {"red"}
返回
<color>red</color>
<color>red</color>
<color>red</color>
<color>red</color>
但是反转迭代顺序
for $i in (3 to 0)
return element color {"red"}
什么都不返回?
答案 0 :(得分:1)
(0到3)返回xs:整数0到3
的序列...但是(3到0)返回空序列! (所以它在你的第二个例子中迭代零次)
P.S。 xquery folk对“数组”说“序列”:P
答案 1 :(得分:1)
根据 XPath 2.0 W3C Specification :
“范围表达式可用于构造序列 连续整数。 to运算符的每个操作数都是 转换为好像它是具有预期的函数的参数 参数类型xs:整数?如果任一操作数是空序列,或 如果从第一个操作数派生的整数大于 从第二个操作数派生的整数,范围的结果 表达式是一个空序列“
你可以简单地使用这样的东西:
for $i in (0 to 3)
return color[4 - $i]