XQueryの選択とフィルタリング2024 年の最新の入門チュートリアル。このコースでは XMLインスタンス文書,要素を選択し、フィルタ,for文,声明を聞かせて,ここで、文,ORDER BY文,return文:, について学習できます。
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>
結果:
ここで、文
ステートメントは、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>