菜单
×
   ❮     
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 HOME XML Introduction XML How to use XML Tree XML Syntax XML Elements XML Attributes XML Namespaces XML Display XML HttpRequest XML Parser XML DOM XML XPath XML XSLT XML XQuery XML XLink XML Validator XML DTD XML Schema XML Server XML Examples XML Quiz XML Certificate

XML AJAX

AJAX Introduction AJAX XMLHttp AJAX Request AJAX Response AJAX XML File AJAX PHP AJAX ASP AJAX Database AJAX Applications AJAX Examples

XML DOM

DOM Introduction DOM Nodes DOM Accessing DOM Node Info DOM Node List DOM Traversing DOM Navigating DOM Get Values DOM Change Nodes DOM Remove Nodes DOM Replace Nodes DOM Create Nodes DOM Add Nodes DOM Clone Nodes DOM Examples

XPath 教程

XPath Introduction XPath Nodes XPath Syntax XPath Axes XPath Operators XPath Examples

XSLT 教程

XSLT Introduction XSL Languages XSLT Transform XSLT <template> XSLT <value-of> XSLT <for-each> XSLT <sort> XSLT <if> XSLT <choose> XSLT Apply XSLT on the Client XSLT on the Server XSLT Edit XML XSLT Examples

XQuery 教程

XQuery Introduction XQuery Example XQuery FLWOR XQuery HTML XQuery Terms XQuery Syntax XQuery Add XQuery Select XQuery Functions

XML DTD

DTD Introduction DTD Building Blocks DTD Elements DTD Attributes DTD Elements vs Attr DTD Entities DTD Examples

XSD Schema

XSD Introduction XSD How To XSD <schema> XSD Elements XSD Attributes XSD Restrictions XSD Complex Elements XSD Empty XSD Elements-only XSD Text-only XSD Mixed XSD Indicators XSD <any> XSD <anyAttribute> XSD Substitution XSD Example

XSD Data Types

XSD String XSD Date/Time XSD Numeric XSD Misc XSD Reference

Web Services

XML Services XML WSDL XML SOAP XML RDF XML RSS

参考手册

DOM Node Types DOM Node DOM NodeList DOM NamedNodeMap DOM Document DOM Element DOM Attribute DOM Text DOM CDATA DOM Comment DOM XMLHttpRequest DOM Parser XSLT Elements XSLT/XPath Functions

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(节点) 返回参数节点的节点名称
fn:nilled(节点) 返回一个布尔值,指示参数节点是否为 nilled(空值)
fn:data(项.项,...) 接收一个项序列并返回一个原子值序列
fn:base-uri()
fn:base-uri(节点)
返回当前节点或指定节点的 base-uri 属性的值
fn:document-uri(节点) 返回指定节点的 document-uri 属性的值

错误和跟踪函数

名称 描述
fn:error()
fn:error(错误)
fn:error(错误,描述)
fn:error(错误,描述,错误对象)
示例: 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(值,标签) 用于调试查询


数值函数

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

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

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

示例: abs(3.14)
结果: 3.14

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

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

示例: ceiling(3.14)
结果: 4

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

示例: floor(3.14)
结果: 3

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

示例: 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(参数) 返回参数的字符串值。参数可以是数字、布尔值或节点集

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

fn:codepoints-to-string((整数,整数,...)) 从 Unicode 标准码点序列创建字符串

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

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

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

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

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

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

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

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

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

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

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

fn:substring(字符串,开始位置,长度)
fn:substring(字符串,开始位置)
返回从开始位置到指定长度的子字符串。第一个字符的索引是 1。如果省略长度,则返回从开始位置到末尾的子字符串

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

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

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

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

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

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

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

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

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

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

fn:translate(字符串1,字符串2,字符串3) 通过将 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(字符串1,字符串2) 如果 string1 包含 string2,则返回 true,否则返回 false

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

fn:starts-with(字符串1,字符串2) 如果 string1 以 string2 开头,则返回 true,否则返回 false

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

fn:ends-with(字符串1,字符串2) 如果 string1 以 string2 结尾,则返回 true,否则返回 false

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

fn:substring-before(字符串1,字符串2) 返回 string1 中 string2 出现之前的开始部分

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

fn:substring-after(字符串1,字符串2) 返回 string1 中 string2 出现之后的剩余部分

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

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

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

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

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

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

fn:tokenize(字符串,模式) 示例: tokenize("XPath is fun", "\s+")
结果: ("XPath", "is", "fun")

anyURI 函数

名称 描述
fn:resolve-uri(相对路径,基路径)  

布尔值函数

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

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

fn:true() 返回布尔值 true

示例: true()
结果: true

fn:false() 返回布尔值 false

示例: false()
结果: false

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

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

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

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

fn:month-from-dateTime(日期时间) 返回一个整数,表示参数本地化值中的月份组件

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

fn:day-from-dateTime(日期时间) 返回一个整数,表示参数本地化值中的天数组件

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

fn:hours-from-dateTime(日期时间) 返回一个整数,表示参数本地化值中的小时组件

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

fn:minutes-from-dateTime(日期时间) 返回一个整数,表示参数本地化值中的分钟组件

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

fn:seconds-from-dateTime(日期时间) 返回一个十进制数,表示参数本地化值中的秒组件

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

fn:timezone-from-dateTime(日期时间) 返回参数的时区组件(如果存在)
fn:year-from-date(日期) 返回一个整数,表示参数本地化值中的年份

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

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

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

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

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

fn:timezone-from-date(日期) 返回参数的时区组件(如果存在)
fn:hours-from-time(时间) 返回一个整数,表示参数本地化值中的小时组件

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

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

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

fn:seconds-from-time(时间) 返回一个整数,表示参数本地化值中的秒组件

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

fn:timezone-from-time(时间) 返回参数的时区组件(如果存在)
fn:adjust-dateTime-to-timezone(日期时间,时区) 如果 timezone 参数为空,则返回一个不带时区的 dateTime。否则,返回一个带时区的 dateTime
fn:adjust-date-to-timezone(日期,时区) 如果 timezone 参数为空,则返回一个不带时区的 date。否则,返回一个带时区的 date
fn:adjust-time-to-timezone(时间,时区) 如果 timezone 参数为空,则返回一个不带时区的时间。否则,返回一个带时区的时间

与 QName 相关的函数

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

示例: Lang("en") 对于
<p xml:lang="en">...</p> 返回 true

示例: Lang("de") 对于
<p xml:lang="en">...</p> 返回 true

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

序列函数

序列通用函数

名称 描述
fn:index-of((项,项,...),搜索项) 返回序列中等于 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 参数的值构造的新序列 - 移除了由 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(项,项,...) 如果参数的值是空序列,则返回 true,否则返回 false

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

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

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

fn:distinct-values((项,项,...),排序) 只返回不同的(不重复的)值

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

fn:insert-before((项,项,...),位置,插入项) 返回一个由 item 参数的值构造的新序列 - 在由 pos 参数指定的插入位置插入 inserts 参数的值

示例: 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((项,项,...)) 返回指定项的逆序

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

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

fn:subsequence((项,项,...),开始位置,长度) 返回一个项序列,从 start 参数指定的开始位置开始,持续 len 参数指定的项数。第一个项位于位置 1

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

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

fn:unordered((项,项,...)) 以依赖于实现的顺序返回项

测试序列基数的函数

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

等于、并集、交集和差集

名称 描述
fn:deep-equal(参数1,参数2,排序) 如果 param1 和 param2 深度相等,则返回 true,否则返回 false

聚合函数

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

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

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

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

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

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

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

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

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

生成序列的函数

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

上下文函数

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

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

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

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

fn:current-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

×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持