Menu
×
   ❮     
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

XML 教程

XML 主页 XML 简介 XML 如何使用 XML 树 XML 语法 XML 元素 XML 属性 XML 命名空间 XML 显示 XML HttpRequest XML 解析器 XML DOM XML XPath XML XSLT XML XQuery XML XLink XML 验证器 XML DTD XML 架构 XML 服务器 XML 示例 XML 测验 XML 证书

XML AJAX

AJAX 简介 AJAX XMLHttp AJAX 请求 AJAX 响应 AJAX XML 文件 AJAX PHP AJAX ASP AJAX 数据库 AJAX 应用程序 AJAX 示例

XML DOM

DOM 简介 DOM 节点 DOM 访问 DOM 节点信息 DOM 节点列表 DOM 遍历 DOM 导航 DOM 获取值 DOM 更改节点 DOM 删除节点 DOM 替换节点 DOM 创建节点 DOM 添加节点 DOM 克隆节点 DOM 示例

XPath 教程

XPath 简介 XPath 节点 XPath 语法 XPath 轴 XPath 运算符 XPath 示例

XSLT 教程

XSLT 简介 XSL 语言 XSLT 转换 XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT 在客户端 XSLT 在服务器 XSLT 编辑 XML XSLT 示例

XQuery 教程

XQuery 简介 XQuery 示例 XQuery FLWOR XQuery HTML XQuery 术语 XQuery 语法 XQuery 添加 XQuery 选择 XQuery 函数

XML DTD

DTD 简介 DTD 构建块 DTD 元素 DTD 属性 DTD 元素与属性 DTD 实体 DTD 示例

XSD 架构

XSD 简介 XSD 如何操作 XSD <schema> XSD 元素 XSD 属性 XSD 限制 XSD 复杂元素 XSD 空 XSD 仅元素 XSD 仅文本 XSD 混合 XSD 指标 XSD <any> XSD <anyAttribute> XSD 替换 XSD 示例

XSD 数据类型

XSD 字符串 XSD 日期/时间 XSD 数字 XSD 杂项 XSD 参考

Web 服务

XML 服务 XML WSDL XML SOAP XML RDF XML RSS

参考资料

DOM 节点类型 DOM 节点 DOM 节点列表 DOM NamedNodeMap DOM 文档 DOM 元素 DOM 属性 DOM 文本 DOM CDATA DOM 注释 DOM XMLHttpRequest DOM 解析器 XSLT 元素 XSLT/XPath 函数

XSLT、XPath 和 XQuery 函数


XSLT 2.0、XPath 2.0 和 XQuery 1.0 共享相同的函数库。


函数参考

函数命名空间的默认前缀为 fn
函数命名空间的 URI 为:http://www.w3.org/2005/xpath-functions

提示: 函数通常使用 fn: 前缀调用,例如 fn:string()。但是,由于 fn: 是命名空间的默认前缀,因此在调用时无需为函数名添加前缀。

访问器函数

名称 描述
fn:node-name(node) 返回参数节点的节点名
fn:nilled(node) 返回一个布尔值,指示参数节点是否为空
fn:data(item.item,...) 接受一系列项,并返回一系列原子值
fn:base-uri()
fn:base-uri(node)
返回当前或指定节点的 base-uri 属性的值
fn:document-uri(node) 返回指定节点的 document-uri 属性的值

错误和跟踪函数

名称 描述
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" 返回到外部处理环境

fn:trace(value,label) 用于调试查询


数值函数

名称 描述
fn:number(arg) 返回参数的数值。参数可以是布尔值、字符串或节点集

示例:number('100')
结果:100

fn:abs(num) 返回参数的绝对值

示例:abs(3.14)
结果:3.14

示例:abs(-3.14)
结果:3.14

fn:ceiling(num) 返回大于数字参数的最小整数

示例:ceiling(3.14)
结果:4

fn:floor(num) 返回不大于数字参数的最大整数

示例:floor(3.14)
结果:3

fn:round(num) 将数字参数舍入到最接近的整数

示例:round(3.14)
结果:3

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

字符串函数

名称 描述
fn:string(arg) 返回参数的字符串值。参数可以是数字、布尔值或节点集

示例:string(314)
结果: "314"

fn:codepoints-to-string((int,int,...)) 从一系列 Unicode 标准代码点创建一个字符串

示例:codepoints-to-string((84, 104, 233, 114, 232, 115, 101))
结果:'Thérèse'

fn:string-to-codepoints(string) 从字符串中返回一系列 Unicode 标准代码点

示例:string-to-codepoints("Thérèse")
结果:(84, 104, 233, 114, 232, 115, 101)

fn:codepoint-equal(comp1,comp2) 如果 comp1 的值等于 comp2 的值,根据 Unicode 代码点排序规则 (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) 返回 true,否则返回 false
fn:compare(comp1,comp2)
fn:compare(comp1,comp2,collation)
如果 comp1 小于 comp2 返回 -1,如果 comp1 等于 comp2 返回 0,如果 comp1 大于 comp2 返回 1(根据所用排序规则的规则)

示例:compare('ghi', 'ghi')
结果:0

fn:concat(string,string,...) 返回字符串的连接

示例:concat('XPath ','is ','FUN!')
结果:'XPath is FUN!'

fn:string-join((string,string,...),sep) 返回通过连接字符串参数并使用 sep 参数作为分隔符创建的字符串。

示例:string-join(('We', 'are', 'having', 'fun!'), ' ')
结果:' We are having fun! '

示例:string-join(('We', 'are', 'having', 'fun!'))
结果:'Wearehavingfun!'

示例:string-join((), 'sep')
结果:''

fn:substring(string,start,len)
fn:substring(string,start)
返回从起始位置到指定长度的子字符串。第一个字符的索引为 1。如果省略长度,则返回从起始位置到结尾的子字符串。

示例:substring('Beatles',1,4)
结果:'Beat'

示例:substring('Beatles',2)
结果:'eatles'

fn:string-length(string)
fn:string-length()
返回指定字符串的长度。如果没有字符串参数,则返回当前节点的字符串值的长度。

示例:string-length('Beatles')
结果:7

fn:normalize-space(string)
fn:normalize-space()
删除指定字符串前后的空格,并将所有内部空格序列替换为一个空格,然后返回结果。如果没有字符串参数,则对当前节点执行相同的操作。

示例:normalize-space(' The   XML ')
结果:'The XML'

fn:normalize-unicode()  
fn:upper-case(string) 将字符串参数转换为大写。

示例:upper-case('The XML')
结果:'THE XML'

fn:lower-case(string) 将字符串参数转换为小写。

示例:lower-case('The XML')
结果:'the xml'

fn:translate(string1,string2,string3) 通过将 string2 中的字符替换为 string3 中的字符来转换 string1。

示例:translate('12:30','30','45')
结果:'12:45'

示例:translate('12:30','03','54')
结果:'12:45'

示例:translate('12:30','0123','abcd')
结果:'bc:da'

fn:escape-uri(stringURI,esc-res) 示例:escape-uri("http://example.com/test#car", true())
结果: "http%3A%2F%2Fexample.com%2Ftest#car"

示例:escape-uri("http://example.com/test#car", false())
结果: "http://example.com/test#car"

示例:escape-uri ("http://example.com/~bébé", false())
结果: "http://example.com/~b%C3%A9b%C3%A9"

fn:contains(string1,string2) 如果 string1 包含 string2,则返回 true,否则返回 false。

示例:contains('XML','XM')
结果:true

fn:starts-with(string1,string2) 如果 string1 以 string2 开头,则返回 true,否则返回 false。

示例:starts-with('XML','X')
结果:true

fn:ends-with(string1,string2) 如果 string1 以 string2 结尾,则返回 true,否则返回 false。

示例:ends-with('XML','X')
结果:false

fn:substring-before(string1,string2) 返回 string2 出现在 string1 中之前 string1 的开头部分。

示例:substring-before('12/10','/')
结果:'12'

fn:substring-after(string1,string2) 返回 string2 出现在 string1 中之后 string1 的剩余部分。

示例:substring-after('12/10','/')
结果:'10'

fn:matches(string,pattern) 如果字符串参数匹配模式,则返回 true,否则返回 false。

示例:matches("Merano", "ran")
结果:true

fn:replace(string,pattern,replace) 返回一个字符串,该字符串通过将给定模式替换为替换参数来创建。

示例:replace("Bella Italia", "l", "*")
结果:'Be**a Ita*ia'

示例:replace("Bella Italia", "l", "")
结果:'Bea Itaia'

fn:tokenize(string,pattern) 示例:tokenize("XPath is fun", "\s+")
结果:("XPath", "is", "fun")

任何URI 的函数

名称 描述
fn:resolve-uri(relative,base)  

布尔值函数

名称 描述
fn:boolean(arg) 为数字、字符串或节点集返回布尔值。
fn:not(arg) 首先通过应用 boolean() 函数将参数简化为布尔值。如果布尔值为 false,则返回 true,如果布尔值为 true,则返回 false。

示例:not(true())
结果:false

fn:true() 返回布尔值 true。

示例:true()
结果:true

fn:false() 返回布尔值 false。

示例:false()
结果:false

持续时间、日期和时间的函数

持续时间、日期和时间的组件提取函数

名称 描述
fn:dateTime(date,time) 将参数转换为日期和时间。
fn:years-from-duration(datetimedur) 返回一个整数,表示参数值的规范词法表示中的年份分量。
fn:months-from-duration(datetimedur) 返回一个整数,表示参数值的规范词法表示中的月份分量。
fn:days-from-duration(datetimedur) 返回一个整数,表示参数值的规范词法表示中的日期分量。
fn:hours-from-duration(datetimedur) 返回一个整数,表示参数值的规范词法表示中的小时分量。
fn:minutes-from-duration(datetimedur) 返回一个整数,表示参数值的规范词法表示中的分钟分量。
fn:seconds-from-duration(datetimedur) 返回一个十进制数,表示参数值的规范词法表示中的秒分量。
fn:year-from-dateTime(datetime) 返回一个整数,表示参数的本地化值中的年份分量。

示例:year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))
结果:2005

fn:month-from-dateTime(datetime) 返回一个整数,表示参数的本地化值中的月份分量。

示例:month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))
结果:01

fn:day-from-dateTime(datetime) 返回一个整数,表示参数的本地化值中的日期分量。

示例:day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))
结果:10

fn:hours-from-dateTime(datetime) 返回一个整数,表示参数的本地化值中的小时分量。

示例:hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))
结果:12

fn:minutes-from-dateTime(datetime) 返回一个整数,表示参数的本地化值中的分钟分量。

示例:minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))
结果:30

fn:seconds-from-dateTime(datetime) 返回一个十进制数,表示参数的本地化值中的秒分量。

示例:seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))
结果:0

fn:timezone-from-dateTime(datetime) 如果存在,则返回参数的时区分量。
fn:year-from-date(date) 返回一个整数,表示参数的本地化值中的年份。

示例:year-from-date(xs:date("2005-04-23"))
结果:2005

fn:month-from-date(date) 返回一个整数,表示参数的本地化值中的月份。

示例:month-from-date(xs:date("2005-04-23"))
结果:4

fn:day-from-date(date) 返回一个整数,表示参数的本地化值中的日期。

示例:day-from-date(xs:date("2005-04-23"))
结果:23

fn:timezone-from-date(date) 如果存在,则返回参数的时区分量。
fn:hours-from-time(time) 返回一个整数,表示参数的本地化值中的小时分量。

示例:hours-from-time(xs:time("10:22:00"))
结果:10

fn:minutes-from-time(time) 返回一个整数,表示参数的本地化值中的分钟分量。

示例:minutes-from-time(xs:time("10:22:00"))
结果:22

fn:seconds-from-time(time) 返回一个整数,表示参数的本地化值中的秒分量。

示例:seconds-from-time(xs:time("10:22:00"))
结果:0

fn:timezone-from-time(time) 如果存在,则返回参数的时区分量。
fn:adjust-dateTime-to-timezone(datetime,timezone) 如果 timezone 参数为空,则返回没有时区的 dateTime。否则,返回具有时区的 dateTime。
fn:adjust-date-to-timezone(date,timezone) 如果 timezone 参数为空,则返回没有时区的日期。否则,返回具有时区的日期。
fn:adjust-time-to-timezone(time,timezone) 如果 timezone 参数为空,则返回没有时区的时间。否则,返回具有时区的时间。

与 QNames 相关的函数

名称 描述
fn:QName()  
fn:local-name-from-QName()  
fn:namespace-uri-from-QName()  
fn:namespace-uri-for-prefix()  
fn:in-scope-prefixes()  
fn:resolve-QName()  

节点函数

名称 描述
fn:name()
fn:name(nodeset)
返回当前节点的名称或指定节点集中的第一个节点的名称。
fn:local-name()
fn:local-name(nodeset)
返回当前节点的名称或指定节点集中的第一个节点的名称 - 不带命名空间前缀。
fn:namespace-uri()
fn:namespace-uri(nodeset)
返回当前节点的命名空间 URI 或指定节点集中的第一个节点的命名空间 URI。
fn:lang(lang) 如果当前节点的语言与指定语言的语言匹配,则返回 true。

示例:Lang("en") 对以下情况为 true
<p xml:lang="en">...</p>

示例:Lang("de") 对以下情况为 false
<p xml:lang="en">...</p>

fn:root()
fn:root(node)
返回当前节点或指定节点所属树的根节点。这通常是一个文档节点。

序列函数

序列的一般函数

名称 描述
fn:index-of((item,item,...),searchitem) 返回序列中等于 searchitem 参数的项的位置。

示例:index-of ((15, 40, 25, 40, 10), 40)
结果:(2, 4)

示例:index-of (("a", "dog", "and", "a", "duck"), "a")
结果 (1, 4)

示例:index-of ((15, 40, 25, 40, 10), 18)
结果:()

fn:remove((item,item,...),position) 返回一个新的序列,该序列由项参数的值构成 - 其中由 position 参数指定的项已删除。

示例:remove(("ab", "cd", "ef"), 0)
结果:("ab", "cd", "ef")

示例:remove(("ab", "cd", "ef"), 1)
结果:("cd", "ef")

示例:remove(("ab", "cd", "ef"), 4)
结果:("ab", "cd", "ef")

fn:empty(item,item,...) 如果参数的值是空序列,则返回 true,否则返回 false。

示例:empty(remove(("ab", "cd"), 1))
结果:false

fn:exists(item,item,...) 如果参数的值不是空序列,则返回 true,否则返回 false。

示例:exists(remove(("ab"), 1))
结果:false

fn:distinct-values((item,item,...),collation) 仅返回不同的(不同的)值。

示例:distinct-values((1, 2, 3, 1, 2))
结果:(1, 2, 3)

fn:insert-before((item,item,...),pos,inserts) 返回一个新的序列,该序列由项参数的值构成 - 其中 inserts 参数的值已插入 pos 参数指定的 position 中。

示例:insert-before(("ab", "cd"), 0, "gh")
结果:("gh", "ab", "cd")

示例:insert-before(("ab", "cd"), 1, "gh")
结果:("gh", "ab", "cd")

示例:insert-before(("ab", "cd"), 2, "gh")
结果:("ab", "gh", "cd")

示例:insert-before(("ab", "cd"), 5, "gh")
结果:("ab", "cd", "gh")

fn:reverse((item,item,...)) 返回指定项的反向顺序。

示例:reverse(("ab", "cd", "ef"))
结果:("ef", "cd", "ab")

示例:reverse(("ab"))
结果:("ab")

fn:subsequence((item,item,...),start,len) 返回从 start 参数指定的 position 开始的项序列,并继续进行 len 参数指定的项数。第一项位于位置 1。

示例:subsequence(($item1, $item2, $item3,...), 3)
结果:($item3, ...)

示例:subsequence(($item1, $item2, $item3, ...), 2, 2)
结果:($item2, $item3)

fn:unordered((item,item,...)) 以实现相关的顺序返回项。

测试序列基数的函数

名称 描述
fn:zero-or-one(item,item,...) 如果参数包含零个或一个项,则返回参数,否则引发错误。
fn:one-or-more(item,item,...) 如果参数包含一个或多个项,则返回参数,否则引发错误。
fn:exactly-one(item,item,...) 如果参数恰好包含一个项,则返回参数,否则引发错误。

相等、联合、交集和差集

名称 描述
fn:deep-equal(param1,param2,collation) 如果 param1 和 param2 深度相等,则返回 true,否则返回 false

聚合函数

名称 描述
fn:count((item,item,...)) 返回节点的数量
fn:avg((arg,arg,...)) 返回参数值的平均值

示例:avg((1,2,3))
结果:2

fn:max((arg,arg,...)) 返回大于其他参数的值

示例:max((1,2,3))
结果:3

示例:max(('a', 'k'))
结果:'k'

fn:min((arg,arg,...)) 返回小于其他参数的值

示例:min((1,2,3))
结果:1

示例:min(('a', 'k'))
结果:'a'

fn:sum(arg,arg,...) 返回指定节点集中每个节点的数值之和

生成序列的函数

名称 描述
fn:id((string,string,...),node) 返回一个元素节点序列,这些节点的 ID 值等于字符串参数中指定的一个或多个值的值
fn:idref((string,string,...),node) 返回一个元素或属性节点序列,这些节点的 IDREF 值等于字符串参数中指定的一个或多个值的值
fn:doc(URI)  
fn:doc-available(URI) 如果 doc() 函数返回一个文档节点,则返回 true,否则返回 false
fn:collection()
fn:collection(string)
 

上下文函数

名称 描述
fn:position() 返回当前正在处理的节点的索引位置

示例://book[position()<=3]
结果:选择前三个 book 元素

fn:last() 返回已处理节点列表中的项目数

示例://book[last()]
结果:选择最后一个 book 元素

fn:current-dateTime() 返回当前 dateTime(含时区)
fn:current-date() 返回当前日期(含时区)
fn:current-time() 返回当前时间(含时区)
fn:implicit-timezone() 返回隐式时区的值
fn:default-collation() 返回默认排序规则的值
fn:static-base-uri() 返回 base-uri 的值

XSLT 函数

此外,还有以下内置 XSLT 函数

名称 描述
current() 返回当前节点
document() 用于访问外部 XML 文档中的节点
element-available() 测试 XSLT 处理器是否支持指定的元素
format-number() 将数字转换为字符串
function-available() 测试 XSLT 处理器是否支持指定的函数
generate-id() 返回一个唯一标识指定节点的字符串值
key() 使用 <xsl:key> 元素指定的索引返回一个节点集
system-property() 返回系统属性的值
unparsed-entity-uri() 返回未解析实体的 URI

×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
[email protected]

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
[email protected]

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. While using W3Schools, you agree to have read and accepted our terms of use, cookie and privacy policy.

Copyright 1999-2024 by Refsnes Data. All Rights Reserved. W3Schools is Powered by W3.CSS.