XQuery 函数

2024 年 8 月 29 日 | 阅读 3 分钟

XQuery 1.0, XPath 2.0 和 XSLT 2.0 共享同一个函数库。

不同类型的 XQuery 函数列表

  • 访问器函数
  • 错误和跟踪函数
  • 数值函数
  • 字符串函数
  • AnyURI 函数
  • 布尔函数
  • 持续时间/日期/时间函数
  • QName 函数
  • 节点函数
  • 序列函数
  • 上下文函数

函数使用 fn: 前缀指定。 例如:fn:string()。 但是 fn: 是命名空间的默认前缀,因此调用函数时不需要前缀 fn。

访问器函数

索引名称描述
1)fn:node-name(node)用于返回参数节点的节点名称。
2)fn:nilled(node)用于返回一个布尔值,指示参数节点是否为 nil。
3)fn:data(item.item,...)用于获取项目序列并返回原子值序列。
4)fn:base-uri()
fn:base-uri(node)
它返回当前或指定节点的 base-uri 属性的值。
5)fn:document-uri(node)它返回指定节点的 document-uri 属性的值。

错误和跟踪函数

索引名称描述
1)fn:error()
fn:error(error)
fn:error(error,description)
fn:error(error,description,error-object)
示例:error(fn:qname('http://example.com/test', 'err:toohigh'), 'error: price is too high') 结果:返回 http://example.com/test#toohigh 以及字符串“error: price is too high”到外部处理环境。
2)fn:trace(value,label)它用于调试查询。

数值函数

索引名称描述
1)fn:abs(num)它返回参数的绝对值。
例如:abs(3.14)
结果:3.14
2)fn:abs(num)它返回参数的绝对值
例如:abs(3.14)
结果:3.14
例如:abs(-3.14)
结果:3.14
3)fn:ceiling(num)它返回大于数字参数的最小整数
例如:ceiling(3.14)
结果:4
4)fn:floor(num)它返回不大于数字参数的最大整数
例如:floor(3.14)
结果:3
5)fn:round(num)它用于将数字参数四舍五入到最接近的整数
例如:round(3.14)
结果:3
6)fn:round-half-to-even()示例:round-half-to-even(0.5)
结果:0
示例:round-half-to-even(1.5)
结果:2
示例:round-half-to-even(2.5)
结果:2

字符串函数

XQuery 中使用了大量的字符串函数,但这里我们只使用选定的函数。

XQuery 中常用的字符串操作函数列表

索引名称描述
1)string-length($string as xs:string) as xs:integer
它返回字符串的长度。
2)concat($input as xs:anyatomictype?) as xs:string它返回串联的字符串作为输出。
3)string-join($sequence as xs:string*, $delimiter as xs:string) as xs:string它返回序列中项目的组合,并用分隔符分隔。

布尔值函数

索引名称描述
1)fn:boolean(arg)用于为数字、字符串或节点集返回布尔值。
2)fn:not(arg)它指定首先通过应用 Boolean() 函数将参数简化为布尔值。 如果布尔值为 false,则返回 true;如果布尔值为 true,则返回 false。
例如:not(true())
结果:false
3)fn:true()它返回布尔值 true
示例:true()
结果:true
4)fn:false()它返回布尔值 false
例如:false()
结果:false

时间和日期函数

XQuery 中支持很多时间和日期函数,但这里我们只提供选定的函数。

XQuery 提供的一些常用日期和时间函数的列表

索引名称描述
1)current-date()用于返回当前日期。
2)current-time()用于返回当前时间。
3)current-datetime()用于同时返回当前日期和当前时间。
下一个主题XQuery 序列