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(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{
let $disc := ($price * $discount) div 100
return ($price - $disc)
};

(: 下面是调用上面的函数的例子 :)

<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>



 


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

历史上的今天:03月29日

热门专题

云南综合高中|云南综合高中
云南综合高中
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
一年制中专|中专学历,中专是什么学历,中专是什么,中专有什么专业,中专升大专,一年制中专
一年制中专
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
昆明综合高中|昆明综合高中
昆明综合高中
自考本科|自考本科有用吗,自考文凭,自考本科文凭,自考文凭有用吗,自考本科文凭有用吗,自考文凭承认吗
自考本科
大理科技管理学校|大理科技管理学校,大理科技,大理科技中等职业技术学校,大理科技管理中等职业技术学校,大理科技学校
大理科技管理学校
弥勒综合高中|弥勒综合高中
弥勒综合高中

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部