07、XQuery 语法

XQuery 对大小写敏感,XQuery 的元素、属性以及变量必须是合法的 XML 名称

XQuery 的基本语法规则:

  • XQuery 对大小写敏感
  • XQuery 的元素、属性以及变量必须是合法的 XML 名称
  • XQuery 字符串值可使用单引号或双引号
  • XQuery 变量由 $ 并跟随一个名称来进行定义,例如 $ bookstore
  • XQuery 注释被 (: 和 :) 分割,例如 (: XQuery 注释 :)

XQuery 条件表达式

我们可以在 XQuery 中使用 if-then-else

看下面的范例

for $x in doc("books.xml")/bookstore/book
return if ($x/@category="CHILDREN") then <child>{data($x/title)}</child> else <adult>{data($x/title)}</adult>

if-then-else 的语法:if 表达式后的圆括号是必需的。else 也是必需的,不过只写 “else ()” 也可以

结果:

<adult>Everyday Italian</adult>
<child>Harry Potter</child>
<adult>Learning XML</adult>
<adult>XQuery Kick Start</adult>

XQuery 比较运算符

在XQuery 中,有两种方法来比较值

通用比较:=, !=, <, <=, >, >=

值的比较:eq、ne、lt、le、gt、ge

这两种比较方法的差异:

先看下面的 XQuery 表达式:

$bookstore//book/@q>10

如果q 属性的值大于 10,上面的表达式的返回值为 true。

$bookstore//book/@q gt 10

如果仅返回一个 q,且它的值大于 10,那么表达式返回 true。 如果不止一个 q 被返回,则会发生错误