导读 | XQuery 1.0、XPath 2.0 以及 XSLT 2.0 共享相同的函数库。 |
XQuery 函数
XQuery 含有超过 100 个内建的函数。这些函数可用于字符串值、数值、日期以及时间比较、节点和 QName 操作、序列操作、逻辑值等等。您也可在 XQuery 中定义自己的函数。
XQuery 内建函数
XQuery 函数命名空间的 URI:
//www.w3.org/2005/02/xpath-functions
函数命名空间的默认前缀是 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 返回的数据类型 { ...函数代码... }
关于用户自定义函数的注意事项
- 请使用 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>
原文来自:
本文地址://gulass.cn/of-xquery-functions.html编辑:王艳敏,审核员:逄增宝
Linux大全:
Linux系统大全: