Funksheni ya XSLT, XPath na XQuery

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

函数参考手册

函数命名空间的默认前缀是:fn:

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

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

Mifano ya kufikia

名称 说明
fn:node-name(node) Inarudi jina cha kina cha thamani cha paramita.
fn:nilled(node) Inarudi thamani ya kibali ya inaonyesha kina cha thamani cha kina cha paramita.
fn:data(item.item,...) Inahusisha taarifa za mafanikio, na inarudi taarifa za thamani.
  • fn:base-uri()
  • fn:base-uri(node)
Inarudi thamani ya kifaa cha kina cha 'base-uri' ya mikononi au kifaa cha kina chaguo.
fn:document-uri(node) Inarudi thamani ya kifaa cha kina ya 'document-uri'.

Top

Mifano ya kosa na kusikitisha

名称 说明
  • fn:error()
  • fn:error(error)
  • fn:error(error,description)
  • fn:error(error,description,error-object)

Mfano: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high')

Matokeo: Inarudi kwa kifaa cha kusaidia kina ya http://example.com/test#toohigh na kikoa cha 'Error: Price is too high'.

fn:trace(value,label) Inatumiwa kwa kusikitisha kwa ujumbe.

Top

Muhtasari wa mifano ya thamani

名称 说明
fn:number(arg)

Inaisha paramita ya thamani. Paramita inaweza kuwa thamani ya kibali, uzito wa jina au kikoa cha ukweli.

Mifano: number('100')}

Matokeo: 100

fn:abs(num)

Inasikia thamani ya uenezi wa thamani.

Mifano: abs(3.14)

Matokeo: 3.14

Mifano: abs(-3.14)

Matokeo: 3.14

fn:ceiling(num)

Inasikia uenezi wa thamani ya num.

Mifano: ceiling(3.14)

Matokeo: 4

fn:floor(num)

Inasikia uenezi mkono wa thamani ya num.

Mifano: floor(3.14)

Matokeo: 3

fn:round(num)

Inakubali thamani ya num kwa uenezi mkono.

Mifano: round(3.14)

Matokeo: 3

fn:round-half-to-even()

Mifano: round-half-to-even(0.5)

Matokeo: 0

Mifano: round-half-to-even(1.5)

Matokeo: 2

Mifano: round-half-to-even(2.5)

Matokeo: 2

Top

Funguo za neno

名称 说明
fn:string(arg)

Inasikia thamani ya neno ya kibali. Parameter inaweza kuwa namba, thamani logiki au kikaa.

Mifano: string(314)

Matokeo: "314"

fn:codepoints-to-string(int,int,...)

Kwa msingi wa codepoint, inasikia neno.

Mifano: codepoints-to-string(84, 104, 233, 114, 232, 115, 101)

Matokeo: 'Thérèse'

fn:string-to-codepoints(string)

Kwa heriko la neno, inasikia msingi wa codepoint.

Mifano: string-to-codepoints("Thérèse")

Matokeo: 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1,comp2) Kwa sheria ya Unicode codepoint, ikiwa thamani ya comp1 inaelewa thamani ya comp2, inasikia true. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), ingawa inasikia false.
  • fn:compare(comp1,comp2)
  • fn:compare(comp1,comp2,collation)

Ikiwa comp1 inahesabika comp2, inasikia -1. Ikiwa comp1 inaelewa comp2, inasikia 0. Ikiwa comp1 inaenea comp2, inasikia 1. (Kwa sheria ya sheria ya kugawanyika inayotumiwa).

例子:compare('ghi', 'ghi')

Matokeo: 0

fn:concat(string,string,...)

返回字符串的拼接。

例子:concat('XPath ','is ','FUN!')

结果:'XPath is FUN!'

fn:string-join((string,string,...),sep)

使用 sep 参数作为分隔符,来返回 string 参数拼接后的字符串。

例子: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)

返回从 start 位置开始的指定长度的子字符串。第一个字符的下标是 1。如果省略 len 参数,则返回从位置 start 到字符串末尾的子字符串。

Mfano: substring('Beatles',1,4)

Matokeo: 'Beat'

Mfano: substring('Beatles',2)

Matokeo: 'eatles'

  • fn:string-length(string)
  • fn:string-length()

Inatoa kipimo cha string inayotumika. Ikiwa string inahitajika, inatoa kipimo cha thamani cha hali hivi.

Mfano: string-length('Beatles')

Matokeo: 7

  • fn:normalize-space(string)
  • fn:normalize-space()

Kumia upofu wa kwanza na mwisho wa string inayotumika, na kumwambia upofu wa ndani kwa kipimo chenye, na kuweka matokeo. Ikiwa string inahitajika, inapokea uharibifu wa hali hivi.

Mfano: normalize-space(' The   XML ')

Matokeo: 'The XML'

fn:normalize-unicode() Kufanya uharibifu wa Unicode.
fn:upper-case(string)

Kamilika string inafikia kifupi kikuu.

Mfano: upper-case('The XML')

Matokeo: 'THE XML'

fn:lower-case(string)

Badilisha string kwa kuzingatia kama kichwani.

Mfano: lower-case('The XML')

Matokeo: 'the xml'

fn:translate(string1,string2,string3)

Badilisha string2 katika string1 na string3.

Mfano: translate('12:30','30','45')

Matokeo: '12:45'

Mfano: translate('12:30','03','54')

Matokeo: '12:45'

Mfano: translate('12:30','0123','abcd')

Matokeo: 'bc:da'

fn:escape-uri(stringURI,esc-res)

Mfano: escape-uri("http://example.com/test#car", true())

Matokeo: "http%3A%2F%2Fexample.com%2Ftest#car"

Mfano: escape-uri("http://example.com/test#car", false())

Matokeo: "http://example.com/test#car"

Mfano: escape-uri ("http://example.com/~bébé", false())

Matokeo: "http://example.com/~b%C3%A9b%C3%A9"

fn:contains(string1,string2)

Ikiwa string1 inaonekana string2, rido true, inaona rido false.

Mfano: contains('XML','XM')

Matokeo: true

fn:starts-with(string1,string2)

Ikiwa string1 inaanza na string2, rido true, inaona rido false.

Mfano: starts-with('XML','X')

Matokeo: true

fn:ends-with(string1,string2)

Ikiwa string1 inaishia na string2, rido true, inaona rido false.

Mfano: ends-with('XML','X')

结果:false

fn:substring-before(string1,string2)

Inaonyesha string2 katika string1 kabla ya kumekarishwa.

Mfano: substring-before('12/10','/')

Matokeo: '12'

fn:substring-after(string1,string2)

Inaisha matokeo wa kufikia kwa thamani ya string2 katika string1 baada ya kumathukia.

Mfano: substring-after('12/10','/')

Matokeo: '10'

fn:matches(string,pattern)

Inaisha true kama thamani ya string inamathukio na umbo wa kufikia, nyingine ni false.

Mfano: matches("Merano", "ran")

Matokeo: true

fn:replace(string,pattern,replace)

Inakubali umbo wa kufikia kwa thamani ya replace, na inaisha matokeo.

Mfano: replace("Bella Italia", "l", "*")

Matokeo: 'Be**a Ita*ia'

Mfano: replace("Bella Italia", "l", "")

Matokeo: 'Bea Itaia'

fn:tokenize(string,pattern)

Mfano: tokenize("XPath is fun", "\s+")

Matokeo: ("XPath", "is", "fun")

Top

Funguo ya anyURI.

名称 说明
fn:resolve-uri(relative,base)  

Top

Funguo za thamani ya bure.

名称 说明
fn:boolean(arg) Inaisha thamani ya bure ya namba, jina au kikaa cha mabaki.
fn:not(arg)

Kwanza inakubali thamani kwa thamani ya bure kwa kutumia funguo boolean().

Inaisha true kama thamani ya bure ni false, nyingine ni true.

Mfano: not(true())

结果:false

fn:true()

Inaisha thamani ya kidogo cha kweli.

Mfano: true()

Matokeo: true

fn:false()

Inaisha thamani ya kidogo cha bure.

Mfano: false()

结果:false

Top

Funguo za muda, tarehe na wa kufikia.

Funguo za kujifunza kilele cha tarehe, muda na wa kufikia.

名称 说明
fn:dateTime(date,time) Inakubali thamani kwa tarehe na wa muda.
fn:years-from-duration(datetimedur) Inaisha angalau ya mwaka kwa thamani ya kufikia, inayotumiwa kwa mawili ya kawaida.
fn:months-from-duration(datetimedur) Inaisha angalau ya mwezi kwa thamani ya kufikia, inayotumiwa kwa mawili ya kawaida.
fn:days-from-duration(datetimedur) Ina: Ina ya siku ya muda, inayotumiwa kwa ujumbe wa kawaida.
fn:hours-from-duration(datetimedur) Ina: Ina ya saa ya muda, inayotumiwa kwa ujumbe wa kawaida.
fn:minutes-from-duration(datetimedur) Ina: Ina ya dakika ya muda, inayotumiwa kwa ujumbe wa kawaida.
fn:seconds-from-duration(datetimedur) Ina: Ina ya dakika ya muda, inayotumiwa kwa ujumbe wa kawaida.
fn:year-from-dateTime(datetime)

Ina: Ina ya mwaka ya msahili wa kawaida.

Mfano: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Matokeo: 2005

fn:month-from-dateTime(datetime)

Ina: Ina ya mwaka ya msahili wa kawaida.

Mfano: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Matokeo: 01

fn:day-from-dateTime(datetime)

Ina: Ina ya siku ya msahili wa kawaida.

Mfano: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Matokeo: 10

fn:hours-from-dateTime(datetime)

Ina: Ina ya saa ya msahili wa kawaida.

Mfano: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Matokeo: 12

fn:minutes-from-dateTime(datetime)

Ina: Ina ya dakika ya msahili wa kawaida.

Mfano: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

Matokeo: 30

fn:seconds-from-dateTime(datetime)

Ina: Ina ya msahili wa kawaida wa wakati hali ya msahili.

Mfano: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10"))

Matokeo: 0

fn:timezone-from-dateTime(datetime) Inahesha sehemu ya wakati wa mbinu, kama inapatikana.
fn:year-from-date(date)

Inahesha chini ya mbinu ya kumekadiri mwaka kwenye thamani.

Mivuno: year-from-date(xs:date("2005-04-23"))

Matokeo: 2005

fn:month-from-date(date)

Inahesha chini ya mbinu ya kumekadiri maandiko kwenye thamani.

Mivuno: month-from-date(xs:date("2005-04-23"))

Matokeo: 4

fn:day-from-date(date)

Inahesha chini ya mbinu ya kumekadiri siku kwenye thamani.

Mivuno: day-from-date(xs:date("2005-04-23"))

Matokeo: 23

fn:timezone-from-date(date) Inahesha sehemu ya wakati wa mbinu, kama inapatikana.
fn:hours-from-time(time)

Inahesha chini ya mbinu ya kumekadiri saa kwenye thamani.

Mivuno: hours-from-time(xs:time("10:22:00"))

Matokeo: 10

fn:minutes-from-time(time)

Inahesha chini ya mbinu ya kumekadiri minati kwenye thamani.

Mivuno: minutes-from-time(xs:time("10:22:00"))

Matokeo: 22

fn:seconds-from-time(time)

Inahesha chini ya mbinu ya kumekadiri wakati wa sekunde kwenye thamani.

Mivuno: seconds-from-time(xs:time("10:22:00"))

Matokeo: 0

fn:timezone-from-time(time) Inahesha sehemu ya wakati wa mbinu, kama inapatikana.
fn:adjust-dateTime-to-timezone(datetime,timezone)

Kamaanisha timezone kipakusha dateTime bila timezone.

Inayorejea dateTime na naonekana timezone.

fn:adjust-date-to-timezone(date,timezone)

Kamaanisha timezone kipakusha date bila timezone.

Inayorejea date na naonekana timezone.

fn:adjust-time-to-timezone(time,timezone)

Kamaanisha timezone kipakusha time bila timezone.

Inaona: Kama hali ya eneo la hatua inafanana na hali iliyotakiwa, inaonekana kwa upande wa hali iliyotakiwa na kuzingatia kwa wakati wa eneo kwenye eneo iliyotakiwa.

Top

Fomu ya kufanana 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()  

Top

Fomu ya kufanana eneo

名称 说明
  • fn:name()
  • fn:name(nodeset)
Inaona: Kuzingatia jina la eneo kwenye eneo kwenye eneo iliyotakiwa.
  • fn:local-name()
  • fn:local-name(nodeset)
Inaona: Kuzingatia jina la eneo kwenye eneo kwenye eneo iliyotakiwa kwa sababu ya eneo la hatua.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
Inaona: Kuzingatia eneo kwenye eneo kwenye eneo iliyotakiwa kwa sababu ya eneo la hatua.
fn:lang(lang)

Inaona: Kama hali ya eneo la hatua inafanana na hali iliyotakiwa, inaonekana kwa true.

Mfano: Lang("en") inaonekana kwa <p xml:lang="en">...</p>

Mfano: Lang("de") inaonekana kwa <p xml:lang="en">...</p>

  • fn:root()
  • fn:root(node)
Inaona: Kuzingatia juu ya mti wa eneo kwenye eneo ambao anayefikia juu ya hali au eneo iliyotakiwa. Kwa kawaida ni eneo wa hatua.

Top

Fomu ya kufanana orodha

Fomu ya kufanana

名称 说明
fn:index-of((item,item,...),searchitem)

Inaona: Kuzingatia upande wa item kwa sababu ya kufungua upande mpya wa orodha.

Mfano: index-of ((15, 40, 25, 40, 10), 40)

Mfano: (2, 4)

Mfano: index-of (("a", "dog", "and", "a", "duck"), "a")

Mfano (1, 4)

Mfano: index-of ((15, 40, 25, 40, 10), 18)

Mfano: ()

fn:remove((item,item,...),position)

Inaona: Kuzingatia upande wa item kwa upo wa kuzingatia upande wa position kwa sababu ya kufungua upande mpya wa orodha.

Mfano: remove(("ab", "cd", "ef"), 0)

结果:("ab", "cd", "ef")

Mfano: 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)

返回由 item 参数构造的新序列 - 同时在 pos 参数指定位置插入 inserts 参数的值。

Mfano: insert-before(("ab", "cd"), 0, "gh")

Mfano: ("gh", "ab", "cd")

Mfano: insert-before(("ab", "cd"), 1, "gh")

Mfano: ("gh", "ab", "cd")

Mfano: insert-before(("ab", "cd"), 2, "gh")

Mfano: ("ab", "gh", "cd")

Mfano: insert-before(("ab", "cd"), 5, "gh")

Mfano: ("ab", "cd", "gh")

fn:reverse((item,item,...))

Inaonyesha msingi wa kipimo cha kipya cha kipimo cha kipya cha kipya cha kipya.

Mfano: reverse(("ab", "cd", "ef"))

Mfano: ("ef", "cd", "ab")

Mfano: reverse(("ab"))

Mfano: ("ab")

fn:subsequence((item,item,...),start,len)

Inaonyesha kipimo cha start kirejea kipimo cha kipimo cha len.

Viwango wa kipya ni 1.

Mfano: subsequence(($item1, $item2, $item3,...), 3)

Matokeo: ($item3, ...)

Mfano: subsequence(($item1, $item2, $item3, ...), 2, 2)

Matokeo: ($item2, $item3)

fn:unordered((item,item,...)) Inaonyesha matukio kwa muundo wa kufanyika kwa kuzalishwa.

Funguo za kuwaonyesha ukubwa wa msingi wa matukio

名称 说明
fn:zero-or-one(item,item,...) Inaonyesha thamani kama inaingia kiwango kirefu au kimoja, inaonyesha kosa kama inaingia thamani zilizopita.
fn:one-or-more(item,item,...) Inaonyesha thamani kama inaingia kiwango kimoja au zaidi, inaonyesha kosa kama inaingia thamani zilizopita.
fn:exactly-one(item,item,...) Inaonyesha thamani kama inaingia kiwango kimoja, inaonyesha kosa kama inaingia thamani zaidi.

Kawaida, Union, Intersection na Except

名称 说明
fn:deep-equal(param1,param2,collation) Inaonyesha true kama param1 na param2 ni kawaida (deep-equal), inaonyesha false kama sababu nyingine.

Funguo za kuzikwamisha

名称 说明
fn:count((item,item,...)) Inaonyesha jumla ya node.
fn:avg((arg,arg,...))

Inaonyesha upele wa thamani za parametri.

Mfano: avg((1,2,3))

Matokeo: 2

fn:max((arg,arg,...))

Inaonyesha thamani ambazo ni juu ya thamani zingine.

Mfano: max((1,2,3))

Matokeo: 3

Mfano: max(('a', 'k'))

Matokeo: 'k'

fn:min((arg,arg,...))

Inaonyesha thamani ambazo ni chini ya thamani zingine.

Mfano: min((1,2,3))

Matokeo: 1

Mfano: min(('a', 'k'))

Matokeo: 'a'

fn:sum(arg,arg,...) Inaonyesha jumla ya thamani ya kila node katika kikombe cha kina.

Funguo za kuzalisha msingi

名称 说明
fn:id((string,string,...),node) Inaonyesha elementi za node, ID ni wanaingia na thamani za string inayotumiwa kwa mawili au zaidi.
fn:idref((string,string,...),node) Inaonyesha elementi au kiwango cha kina cha node, IDREF ni wanaingia na thamani za string inayotumiwa kwa mawili au zaidi.
fn:doc(URI)  
fn:doc-available(URI) 如果 doc() 函数返回文档节点,则返回 true,否则返回 false。
  • fn:collection()
  • fn:collection(string)
 

Top

上下文函数

名称 说明
fn:position()

返回当前正在被处理的节点的 index 位置。

例子://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 的值。

Top

XSLT 函数

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

名称 描述
current() 返回当前节点作为唯一成员的节点集。
document() 用于访问外部 XML 文档中的节点。
element-available() 检测 XSLT 处理器是否支持指定的元素。
format-number() 把数字转换为字符串。
function-available() 检测 XSLT 处理器是否支持指定的函数。
generate-id() 返回唯一标识指定节点的字符串值。
key() 检索以前使用 语句标记的元素。
node-set 将树转换为节点集。产生的节点集总是包含单个节点并且是树的根节点。
system-property() Rudi thamani ya hisia ya mbinguni.
unparsed-entity-uri() Rudi URI ya kina hali ya huzuni.

Top