XQuery FLWOR 表現

XMLの例

以下の例では、この"books.xml"ドキュメントを使用し続けます(前節のXMLファイルと同じです)。

ブラウザで"books.xml"ファイルを確認してください

FLWORを使用して"books.xml"からノードを選択する場合

以下のパスエクプレッションを見てください:

doc("books.xml")/bookstore/book[price>30]/title

この表現は、bookstore 要素の下にある book 要素の下のすべての title 要素を選択し、その中の price 要素の値が 30 より大きい場合を選択します。

以下の FLWOR 表現で選択されるデータと上記のパス表現は同じです:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title

結果は:

<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>

FLWORを使って、結果をソートできます:

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title

FLWOR は "For, Let, Where, Order by, Return" の頭文字の略です。

for 文は bookstore 要素の下にあるすべての book 要素を $x という変数に抽出します。

where 文は price 要素の値が 30 より大きい book 要素を選択しています。

order by 文がソート順を定義しています。title 要素に基づいてソートされます。

return 文が何を返すかを定義しています。この場合は title 要素が返されます。

上記の XQuery 表現の結果:

<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>