的序列是否有更簡單的方法來做到這一點構建節點
<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