JSRUN 用代码说话

函数

编辑教程

函数

在 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>
JSRUN闪电教程系统是国内最先开创的教程维护系统, 所有工程师都可以参与共同维护的闪电教程,让知识的积累变得统一完整、自成体系。 大家可以一起参与进共编,让零散的知识点帮助更多的人。
X
支付宝
9.99
无法付款,请点击这里
金额: 0
备注:
转账时请填写正确的金额和备注信息,到账由人工处理,可能需要较长时间
如有疑问请联系QQ:565830900
正在生成二维码, 此过程可能需要15秒钟