XQuery FLWOR 表示式
什麼是 FLWOR?
FLWOR(發音為“flower”)是“For, Let, Where, Order by, Return”的首字母縮寫。
- For - 選擇一個節點序列
- Let - 將序列繫結到一個變數
- Where - 過濾節點
- Order by - 對節點進行排序
- Return - 返回什麼(對每個節點進行一次評估)
XML 示例文件
我們將在下面的示例中使用“books.xml”文件(與上一章的 XML 檔案相同)。
如何使用 FLWOR 從“books.xml”中選擇節點
看下面的路徑表示式
doc("books.xml")/bookstore/book[price>30]/title
上面的表示式將選擇 bookstore 元素下 book 元素中,price 元素值大於 30 的所有 title 元素。
以下 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
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>