Latest web development tutorials

XQueryの選択とフィルタリング

XMLインスタンス文書

次の例では、この "books.xmlという」(同じXMLファイルと上記のセクションが使用されている)文書を使用し続けます。

お使いのブラウザで「books.xmlという"ファイルを参照してください


要素を選択し、フィルタ

前章で見られるように、私たちは、要素を選択し、フィルタリングするFLWOR式やパス表現を使用しています。

次のFLWOR式を考えてみます。

for $x in doc("books.xml")/bookstore/book
where $x/price>30
order by $x/title
return $x/title
  • 以下のための - (オプション)変数に式によって返されるバンドルの各項目へ
  • ましょう - (オプション)
  • ここで、 - (オプション)は、条件を設定しました
  • 順 - (オプション)の結果で順位を設定
  • 返す - 結果の規定は、コンテンツを返さ

for文

式の中で返される各アイテムに関連付けられた変数の声明。 文の繰り返しのため。 FLWOR式で同じ文に対して複数のがあるかもしれません。

ループへのfor文で指定された回数では、にキーワードを使用することができます。

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>

キーワードでの反復を計算するために使用することができます

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 $x := (1 to 5)
return <test>{$x}</test>

結果:

<test>1 2 3 4 5</test>

ここで、文

ステートメントは、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>