XML文書の例
私たちは、使用する"books.xml"以下の例では、文書(same XML file as in the previous chapters) 。
選択するとフィルタリングの要素
私たちは前の章で見てきたように、我々はパス式のいずれかで、またはFLWOR式を持つ要素を選択し、フィルタリングされています。
次FLWOR式を見てください:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
- 以下のために- (optional)式におけるによって返された各項目に変数をバインドします
- 聞かせて- (optional)
- どこ- (optional)条件を指定
- 順序が- (optional)結果のソート順を指定します
- 返す - 結果に戻るには何を指定します
句について
句の中での発現によって返された各項目に変数をバインドします。 反復における節の結果を得るために。 同じFLWOR式の句のために複数存在することができます。
ループ句の中に特定の回数には、次のように使用することができますtoキーワード:
for $x in (1 to 5)
return <test>{$x}</test>
結果:
<test>1</test>
<test>2</test>
<test>3</test>
<test>4</test>
<test>5</test>
キーワードは、反復をカウントするために使用することができます。 at
for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{$i}. {data($x)}</book>
結果:
<book>1. Everyday Italian</book>
<book>2. Harry Potter</book>
<book>3. XQuery Kick Start</book>
<book>4. Learning XML</book>
また、句の中の式の中に2つ以上ので許可されています。 式の中で、各を区切るにはカンマを使用します。
for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}</test>
結果:
<test>x=10 and y=100</test>
<test>x=10 and y=200</test>
<test>x=20 and y=100</test>
<test>x=20 and y=200</test>
let節
let節は、変数の割り当てを可能にし、それが同じ式を何度も繰り返して回避します。 let節は、反復にはなりません。
let $x := (1 to 5)
return <test>{$x}</test>
結果:
<test>1 2 3 4 5</test>
WHERE句
where句は、結果のために1つ以上の基準を指定するために使用されます。
where $x/price>30 and $x/price<100
ORDER BY句
ORDER BY句は、結果のソート順を指定するために使用されます。 ここでは、カテゴリとタイトルで結果を注文したいです。
for $x in doc("books.xml")/bookstore/book
order by $x/@category, $x/title
return $x/title
結果:
<title lang="en">Harry Potter</title>
<title lang="en">Everyday Italian</title>
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>
return句
return節が返されるかを指定します。
for $x in doc("books.xml")/bookstore/book
return $x/title
結果:
<title lang="en">Everyday Italian</title>
<title lang="en">Harry Potter</title>
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</title>