XQuery 3.0を実装しているBaseXを使用しています。XQueryでのXMLデータソースの埋め込み
XQueryにXMLデータソースを埋め込むには、含める要素をすべて入力する必要はありません。私はこのように、各レベルですべての値の合計を追加したい
<X>
<name>The root</name>
<Y>
<name> Level 1</name>
<Z>
<name>Level 2a</name>
<value>1</value>
</Z>
</Y>
<Y>
<name>Level 1b</name>
<Z>
<name>Level 2b</name>
<value>2</value>
</Z>
</Y>
</X>
:
<X>
<name>The root</name>
<value>3</value>
<Y>
<name> Level 1</name>
<value>1</value>
<Z>
<name>Level 2a</name>
<value>1</value>
</Z>
</Y>
<Y>
<name>Level 1b</name>
<value>2</value>
<Z>
<name>Level 2b</name>
<value>2</value>
</Z>
</Y>
</X>
が、私はこのために、このようにXQueryを使用することができます。
たとえば、次のXMLを考えますfor $x in /X
return
<X>{
$x/name,
<value>{sum($x//value)}</value>,
for $y in $x/Y
return
<Y>{
$y/name,
<value>{sum($y//value)}</value>,
$y/Z
}</Y>
}</X>
しかし、これは私が繰り返さなければならない要素がたくさんあるときに非常に面倒です。結果セットに保存したいすべての属性と要素を入力しなくても、この結果を得る方法はありますか?
私はこのxqueryのことを好きになり始めています:) – wvdz
「 {sum($ something // value)} 」と書き直して再帰的に使うことを再帰的に追加することを意味しますか?それがあなたが意味するものなら、このサンプルデータのためにそれを行う方法の例を追加できますか?私の状況では、いくつかのレベルで約15値の集計を追加する必要があります。集計コードを一度書くだけで済むようにすればいいでしょう。 –
wvdz