XQuery FLWOR 表达式

创建于 2024-12-03 / 32
字体: [默认] [大] [更大]

什么是 FLWOR?

FLWOR (发音为 "flower") 是 "For, Let, Where, Order by, Return"的缩写.

  • For - 选择节点序列
  • Let - 将序列绑定到变量
  • Where - 过滤节点
  • Order by - 对节点排序
  • Return - 返回的内容(每个节点计算一次)

XML实例文档

我们将在下面的实例中使用"books.xml"文档(与上一章中相同的xml文件)。

在浏览器中查看"books.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>

0 人点赞过