XQuery チュートリアルlogin
XQuery チュートリアル
著者:php.cn  更新時間:2022-04-21 16:43:44

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 - (オプション) in 式によって返される各項目に変数をバンドルします

  • let - (オプション)

  • where - (オプション) 条件を設定します

  • order by - (オプション) ) 結果がソートされる順序を設定します

  • return - 結果で返される内容を指定します

for ステートメント

for ステートメントは、in 式プロジェクトによって返される各値に変数をバインドできます。 for ステートメントは反復を生成します。同じ FLWOR 式内に複数の for ステートメントが存在できます。

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>

キーワード at は反復計算に使用できます:

for $x at $i in doc("books.xml")/bookstore/book/title
return <book>{ $i}.{data($x)}</book>

結果:

<book>1. 日常のイタリア語</book>
<book>2. <本>3.式内でそれぞれを区切るにはカンマを使用してください:

for $x in (10,20), $y in (100,200)
return <test>x={$x} and y={$y}< ;/テスト>

結果:

<テスト>x=10 および y=100
<テスト>x=10 および y=200

<テスト>x= 20 およびy=100

x=20 および y=200

let ステートメント

let ステートメントは変数の代入を完了し、同じ式を複数回繰り返すことを避けます。 let ステートメントは反復を引き起こしません。

let $x := (1 to 5)
return <test>{$x}</test>

結果:

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

where ステートメント

where ステートメントは、結果に対する 1 つ以上の条件 (基準) を設定するために使用されます。

$x/price>30 および $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="ja">ハリー・ポッター</title>
<title lang="ja">毎日のイタリア語</title>
<title lang= " ja">Learning XML</title>
<title lang="ja">XQuery キックスタート</title>

return ステートメント:

return ステートメントは、返されるコンテンツを指定します。

$x の doc("books.xml")/bookstore/book
return $x/title

結果:

<title lang="en">Everyday Italian</title>
<title lang="ja">ハリー ポッター</title>
<title lang="ja">XQuery キック スタート</title>
<title lang="ja">XML の学習</title> ;