XQuery FLWOR 表达式
XML 实例文档
我们将在下面的例子中继续使用这个 "books.xml" 文档(与上一节中的 XML 文件相同)。
如果使用 FLWOR 从 "books.xml" 选取节点
请看下面这个路径表达式:
doc("books.xml")/bookstore/book[price>30]/title
上面这个表达式可选取 bookstore 元素下的 book 元素下所有的 title 元素,并且其中的 price 元素的值必须大于 30。
下面这个 FLWOR 表达式所选取的数据和上面的路径表达式是相同的:
for $x in doc("books.xml")/bookstore/book
where $x/price>30
return $x/title
where $x/price>30
return $x/title
输出结果:
<title lang="en">XQuery Kick Start</title>
<title lang="en">Learning XML</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
where $x/price>30
order by $x/title
return $x/title
FLWOR 是 "For, Let, Where, Order by, Return" 的只取首字母缩写。
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>
<title lang="en">XQuery Kick Start</title>