當前位置:
首頁 > 知識 > XQuery 函數

XQuery 函數

XQuery 1.0、XPath 2.0 以及 XSLT 2.0 共享相同的函數庫。



XQuery 函數

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



XQuery 內建函數

XQuery 函數命名空間的 URI:

http://www.w3.org/2005/02/xpath-functions

函數命名空間的默認前綴是 fn:。

提示:函數經常被通過 fn: 前綴進行調用,例如 fn:string()。不過,由於 fn: 是命名空間的默認前綴,所以函數名稱不必在被調用時使用前綴。

您可以在我們的 XPath 教程中找到完整的《內建 XQuery 函數參考手冊》。



函數調用實例

函數調用可與表達式一同使用。請看下面的例子:

例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 返回的數據類型

{

...函數代碼...

}

關於用戶自定義函數的注意事項:

  • 請使用 declare function 關鍵詞

  • 函數名須使用前綴

  • 參數的數據類型通常與在 XML Schema 中定義的數據類型一致

  • 函數主體須被花括弧包圍

一個在查詢中聲明的用戶自定義函數的例子:

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>

XQuery 函數

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

XQuery 選擇 和 過濾
MongoDB 編程

TAG:程序員小新人學習 |