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
上面的表达式将选择book元素下的所有title元素,book元素下的title元素的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 子句只选择值大于30的价格元素的帐簿元素。
order by 子句定义排序顺序。将按title元素排序。
return 子句指定应返回什么。这里返回标题元素。
上述XQuery表达式的结果将是:
<title lang="en">Learning XML</title>
<title lang="en">XQuery Kick Start</title>