たのしいXML: XQuery: return句

2009年02月22日(日)更新


■return句で検索結果をどう出力するかを指定

たけち: 前回はorder by句を使って、、ノード処理の順番を指定する例をみたね。

さらら: えぇ。

たけち: 今回は、基本構文の最後としてreturn句を試してみよう。といっても、すでにこれまでにreturn句を使っているけどね。

さらら: そうね。(^ ^;

たけち: return句では、検索結果として得られたノードを利用して、どう出力するかを指定できるんだ。たとえば、結果ノードの属性だけを出力したり、特定の子ノードだけを出力したりとか、ね。

さらら: えぇ。

たけち: return句の構文を載せておくね。

return句

さらら: この、コンストラクタってなに?

たけち: XQueryでいうコンストラクタは、出力するXML要素を作るための式、のことなんだ。

さらら: へぇ〜。

たけち: コンストラクタでは、for句などに出てきた変数を参照することができるんだよ。で、XML要素を作るわけだから、整形式のXMLを作るように書かないといけないからね。

さらら: あっ、そうね。


■return句の例(1)

たけち: さっそくだけど、return句の例をみてみよう。次の例を見て。

さらら: はい。


poem要素の検索例: returny句で、「歌番号: よみ」を出力する

コマンドエディタで

    xquery
    for $input in db2-fn:xmlcolumn("MANYO01.POEM")/poem
    return
    <p>
    {$input/fn:data(@pno)}: {$input/yomi/text()}
    </p>

    ;      <--- セミコロンです。

を入力します。

returny句で、「歌番号: よみ」を出力する(例)

さらら: あっ、3首の歌が、「歌番号: よみ」の形に一緒に表示されたわ。

たけち: XMLデータとして、各歌の番号と内容が<p></p>で囲まれているよね。

さらら: あっ、そっか。

たけち: 図でこの様子を確認しておこうね。

さらら: はい。

order by句で歌人の名前順(昇順)にする(例)

さらら: 歌番号は、fn:data(@pno)でとってきているのね。

たけち: そうだね。return句のの基本的な使い方はこれでいいよね。

さらら: はい。

たけち: じゃ、今回はこれでおしまい。おつかれさま。

さらら: は〜い。ありがと。

→続きます。 (^ ^;


[たのしいXML のインデックス]へ