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>