+ - * div mod 四则运算
= != > >= < <= 比较运算
and or 组合运算
position() 当前节点序号从1开始计数
last() 最后一个节点序号
name() 当前节点名字
fn:number(xx) 返xx的数值, number('100')=100
fn:abs(num) 绝对值
fn:ceiling(num) 大于num的最小整数, ceiling(3.14) = 4
fn:floor(num) 不大于num的最大整数, floor(3.14) = 3
fn:round(num) 四舍五入为最接近的整数
fn:round-half-to-even() 四舍五入为偶数?
fn:string(arg) 返回字符串值, string(314) = "314"
fn:codepoints-to-string(x,y,...) unicode转字符串
fn:string-to-codepoints(str) 字符串转unicode
fn:codepoint-equal(x,y) 字符串的unicode是否相等
fn:compare(x,y,[collation]) 字符串比较 == strcmp, 可以对比规则url
fn:concat(x,y,...) 字符串拼接 == strcat
fn:string-join((x,y,...),[sep]) 通过sep拼接字符串, sep 默认为空
fn:substring(x,start,[len]) 子字符串
fn:string-length([str]) 返回str长度, 无参数返回当前节点字符串长度
fn:normalize-space([str]) 删除字符串的开头和结尾的空白, 无参数当前节点字符串
fn:normalize-unicode() 字符串转unicode编码
fn:upper-case(str) 转换为大写
fn:lower-case(str) 转换为小写
fn:translate(x,y,z) 把x中的y替换为z
fn:escape-uri(url,esc|res) URL编码, true esc 转换path部分, false res只转换参数
fn:contains(x,y) x包含y返回true
fn:starts-with(x,y) 如果x以y开始返回true
fn:ends-with(x,y) 如果x以y结尾返回true
fn:substring-before(x,y) 返回x中y出现之前的子字符串
fn:substring-after(x,y) 返回x中y出现之后的子字符串
fn:matches(x,pattern) 匹配指定的正则返回true
fn:replace(x,pattern,replace) 正则替换
fn:tokenize(x,pattern) 返回正则匹配的子串数组
fn:boolean(arg) 转为true false
fn:not(arg) 转为true false 并取反
fn:true() true
fn:false() false
fn:index-of((x,y,...),z) 返回z在数组中出现的位置数组,位置从1开始
fn:remove((x,y,...),z) 删除数组中的z位置的数据,返回新数组
fn:empty(x,y,...) 数组是否为空
fn:exists(x,y,...) 数组是否为空
fn:distinct-values((x,y,...),[z]) 去重, z为判断函数?
fn:insert-before((x,y,...),pos,z) 在数组pos位置前插入z
fn:reverse((x,y,...)) 倒序数组
fn:subsequence((x,y,...),start,len) 返回start开始len长度的数组
fn:unordered((x,y,...))