XQuery 語法
XQuery 對大小寫敏感,XQuery 的元素、屬性以及變數必須是合法的 XML 名稱。
XQuery 的基礎語法規則:
一些基本的語法規則:
- XQuery 對大小寫敏感
- XQuery 的元素、屬性以及變數必須是合法的 XML 名稱。
- XQuery 字串值可使用單引號或雙引號。
- XQuery 變數由 "$" 並跟隨一個名稱來進行定義,舉例,$bookstore
- XQuery 注釋被 (: 和 :) 分割,例如,(: XQuery 注釋 :)
XQuery 條件運算式
"If-Then-Else" 可以在 XQuery 中使用。
請看下麵的例子:
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>
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>
<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。
如下實例,如果僅返回一個 q,且它的值大於 10,那麼運算式返回 true。如果不止一個 q 被返回,則會發生錯誤:
$bookstore//book/@q gt 10