XQuery 函式概述

大雄45發表於2022-10-14
導讀 XQuery 1.0、XPath 2.0 以及 XSLT 2.0 共享相同的函式庫。

XQuery 函式概述XQuery 函式概述

XQuery 函式

XQuery 含有超過 100 個內建的函式。這些函式可用於字串值、數值、日期以及時間比較、節點和 QName 操作、序列操作、邏輯值等等。您也可在 XQuery 中定義自己的函式。

XQuery 內建函式

XQuery 函式名稱空間的 URI:

函式名稱空間的預設字首是 fn:。

提示:函式經常被透過 fn: 字首進行呼叫,例如 fn:string()。不過,由於 fn: 是名稱空間的預設字首,所以函式名稱不必在被呼叫時使用字首。

函式呼叫例項

函式呼叫可與表示式一同使用。請看下面的例子:

例1:在元素中
<name>{upper-case($booktitle)}</name>
例2: 在路徑表示式的謂語中
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']
例3: 在 let 語句中
let $name := (substring($booktitle,1,4))
XQuery 使用者定義函式

如果找不到所需的 XQuery 函式,你可以編寫自己的函式。

可在查詢中或獨立的庫中定義使用者自定義函式。

語法
declare function 字首:函式名($引數 AS 資料型別)
AS 返回的資料型別
{
 ...函式程式碼...
}
關於使用者自定義函式的注意事項
  1. 請使用 declare function 關鍵詞
  2. 函式名須使用字首
  3. 引數的資料型別通常與在 XML Schema 中定義的資料型別一致
  4. 函式主體須被花括號包圍
一個在查詢中宣告的使用者自定義函式的例子
declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
AS xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
}
Below is an example of how to call the function above:
<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>

原文來自:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2910799/,如需轉載,請註明出處,否則將追究法律責任。

相關文章