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 元素下的所有 title 元素,这些 book 元素的 price 元素的值大于 30。
以下 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>