有更简单的方法吗
<Elements>
{
for $i in ("a", "b", "c")
return <Element name="{$i}"/>
}
</Elements>
在xquery中?
答案 0 :(得分:2)
我真的不明白你的问题。你的意思更容易了吗?
怎么样:
<Elements>
<Element name="a" />
<Element name="b" />
<Element name="c" />
</Elements>
答案 1 :(得分:2)
你可以使用fn:map()是你的XQuery处理器有XQuery 3.0支持:
fn:map(function($ e){&lt; Element name =“{$ e}”/&gt;},$ sequence)
答案 2 :(得分:0)
我也想知道“更容易”是什么意思。
将所有项目都放在变量$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"/>