的序列是否有更简单的方法来做到这一点构建节点
<Elements>
{
for $i in ("a", "b", "c")
return <Element name="{$i}"/>
}
</Elements>
XQuery中?
的序列是否有更简单的方法来做到这一点构建节点
<Elements>
{
for $i in ("a", "b", "c")
return <Element name="{$i}"/>
}
</Elements>
XQuery中?
您可以使用FN:地图()是你的XQuery处理器具有的XQuery 3.0支持:
FN:地图(函数($ E){<元素名称=” {$ e}“/ >},$序列号)
这很有趣。但据我所见,XQuery 3.0只处于预览阶段。 – Max 2011-05-10 16:16:18
我真的不明白你的问题。你更容易做什么?
如何:
<Elements>
<Element name="a" />
<Element name="b" />
<Element name="c" />
</Elements>
越容易,我的意思就是代码越少。我只是用abc-sequence作为例子。序列可以包含更多的元素。 – Max 2011-05-10 15:46:54
我也想知道”更简单“是什么意思。
有一个变量$seq
和使用的所有项目:
for $i in 1 to count($seq)
return <Element name="{$seq[$i]}"/>
这是一个整体的XQuery程序:
let $seq := 1 to 15
return
for $i in 1 to count($seq)
return <Element name="a{$seq[$i]}"/>
并产生正确的,希望引起:
<Element name="a1"/>
<Element name="a2"/>
<Element name="a3"/>
<Element name="a4"/>
<Element name="a5"/>
<Element name="a6"/>
<Element name="a7"/>
<Element name="a8"/>
<Element name="a9"/>
<Element name="a10"/>
<Element name="a11"/>
<Element name="a12"/>
<Element name="a13"/>
<Element name="a14"/>
<Element name="a15"/>
I也不明白这个问题(见奥利弗下面的答案)。您提供给我们的查询非常简单,并且适用于任何序列。也许,你应该给我们更多关于你的实际使用案例的细节。 – Shcheklein 2011-05-10 22:26:50
@Shcheklein我在想,也许这样的查询可以在不使用FLOWR的情况下编写。也许像user457056显示的某种单行程式。 – Max 2011-05-11 16:25:02