XPath, XQuery na XSLT Functions

存取函数

Jina Muhtasari
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 属性的值。

错误和跟踪函数

Jina Muhtasari
  • 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) Inaonyesha kipindi cha kusikia kina kina kina.

Funguo za thamani

Jina Muhtasari
fn:number(arg)

Inaonyesha thamani kina thamani kina thamani, thamani au ya kwa thamani kina ya mifumo ya kina au kina ya kina.

Mivivu: number('100')

Matokeo: 100

fn:abs(num)

Inaonyesha kipunguza kina thamani kina kina kipya.

Mivivu: abs(3.14)

Matokeo: 3.14

Mivivu: abs(-3.14)

Matokeo: 3.14

fn:ceiling(num)

Inaonyesha kipunguza kina num kina kipya kina kipya.

mivivu:ceiling(3.14)

Matokeo: 4

fn:floor(num)

Kurejea thamani ya kiwango kinaonekana kama thamani ya kichwa cha chini ya thamani ya num.

Mfano: floor(3.14)

Matokeo: 3

kifupi: round(num)

Kuwa na thamani ya num inakubaliwa kwa thamani ya chini ya kiwango kinaofikia kinaingia.

Mfano: round(3.14)

Matokeo: 3

kifupi: round-half-to-even()

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

Matokeo: 0

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

Matokeo: 2

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

Matokeo: 2

Funguo za maneno

Jina Muhtasari
kifupi: string(arg)

Kurejea thamani ya maneno ya kiwango. Kiwango kinaweza kuwa chini ya thamani au chini ya maneno.

Mfano: string(314)

Matokeo: "314"

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

Kuwa na maneno kutoka mawili wa maneno.

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

Matokeo: 'Thérèse'

kifupi: string-to-codepoints(kifupi)

Kuwa na mawili wa maneno kutoka maneno.

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

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

kifupi: codepoint-equal(comp1,comp2) Kwa kusoma kwa Unicode codepoint, ikiwa thamani ya comp1 inaelewa thamani ya comp2, kurejea true. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), nyingine kurejea false.
  • kifupi: kusoma(comp1,comp2)
  • kifupi: kusoma(comp1,comp2,kusoma)

Ikiwa comp1 inapungua na comp2, kurejea -1. Ikiwa comp1 inaelewa comp2, kurejea 0. Ikiwa comp1 inaongea na comp2, kurejea 1. (Kwa sheria ya maelezo ambayo inatumiwa).

Mfano: kusoma('ghi', 'ghi')

Matokeo: 0

kifupi: kifupi(kifupi,...)

Kurusha mawili wa maneno kwa maneno ya msingi.

Mfano: kifupi('XPath', 'inafaa', 'kizungu!')

Matokeo: 'XPath inafaa kizungu!

kifupi: kifupi((kifupi,...),kifupi)

使用 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 到字符串末尾的子字符串。

例子:substring('Beatles',1,4)

结果:'Beat'

例子:substring('Beatles',2)

结果:'eatles'

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

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

例子:string-length('Beatles')

结果:7

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

删除指定字符串的开头和结尾的空白,并把内部的所有空白序列替换为一个,然后返回结果。如果没有 string 参数,则处理当前节点。

例子:normalize-space(' The   XML ')

结果:'The XML'

fn:normalize-unicode() 执行 Unicode 规格化。
fn:upper-case(string)

把 string 参数转换为大写。

例子:upper-case('The XML')

结果:'THE XML'

fn:lower-case(string)

把 string 参数转换为小写。

例子:lower-case('The XML')

结果:'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)

Kama string1 ina string2, tena true, nyingine tena false.

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

Mfano: true()

fn:starts-with(string1,string2)

Kama string1 inapokea string2 kwenye uwanja wa kwanza, tena true, nyingine tena false.

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

Mfano: true()

fn:ends-with(string1,string2)

Kama string1 inapokea string2 kwenye uwanja wa mwisho, tena true, nyingine tena false.

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

Matokeo: false

fn:substring-before(string1,string2)

Hivyo string2 katika string1 kuzingaa kabla ya kufikia, tena string.

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

Matokeo: '12'

fn:substring-after(string1,string2)

Hivyo string2 kwa string1 katika upepo wa kuzingaa.

例子:substring-after('12/10','/')

结果:'10'

fn:matches(string,pattern)

如果 string 参数匹配指定的模式,则返回 true,否则返回 false。

例子:matches("Merano", "ran")

Mfano: true()

fn:replace(string,pattern,replace)

把指定的模式替换为 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")

针对 anyURI 的函数

Jina Muhtasari
fn:resolve-uri(relative,base)  

fn:resolve-uri(relative,base)

Jina Muhtasari
Funguo za namba ya falana fn:boolean(arg)
Ina namba ya falana inayotumiwa kama kawaida kwa sababu ya msingi.

fn:not(arg)

Kwanza, kwa kutumia fungu ya boolean() kumtumia kina kwake kama namba ya falana. Ikiwa namba ya falana hiyo ina namba ya falana falesi, inaonekana kwamba ni kweli, inakubali kweli.

Matokeo: false

Mfano: not(true())

fn:true()

Ina namba ya falana inayotumiwa kama kawaida kwa sababu ya msingi.

Mfano: true()

fn:false()

Ina namba ya falana inayotumiwa kama kawaida kwa sababu ya msingi.

Mfano: false()

Matokeo: false

Funguo za wakati, siku na muda

Fomu za data, wakati na kwa wakati zaidi za programu ya kuzalisha

Jina Muhtasari
fn:dateTime(date,time) Kuwaambia para wakati na siku.
fn:years-from-duration(datetimedur) Ina namba ya mwaka ya kuanzia kwenda mwaka inayotumiwa kama kawaida kwa sababu ya msingi.
fn:months-from-duration(datetimedur) Ina namba ya mwezi ya kuanzia kwenda mwezi inayotumiwa kama kawaida kwa sababu ya msingi.
fn:days-from-duration(datetimedur) Ina namba ya siku ya kuanzia kwenda siku inayotumiwa kama kawaida kwa sababu ya msingi.
fn:hours-from-duration(datetimedur) Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika saa, kwa taratibu ya kufaa.
fn:minutes-from-duration(datetimedur) Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika miniti, kwa taratibu ya kufaa.
fn:seconds-from-duration(datetimedur) Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika miniti, kwa taratibu ya kufaa.
fn:year-from-dateTime(datetime)

Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika mwaka.

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

Matokeo: 2005

fn:month-from-dateTime(datetime)

Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika mwezi.

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

Matokeo: 01

fn:day-from-dateTime(datetime)

Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika siku.

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

Matokeo: 10

fn:hours-from-dateTime(datetime)

Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika saa.

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

Matokeo: 12

fn:minutes-from-dateTime(datetime)

Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika miniti.

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

Matokeo: 30

fn:seconds-from-dateTime(datetime)

Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika sekunde.

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

Matokeo: 0

fn:timezone-from-dateTime(datetime) Itaonyesha sehemu ya mji wa muda ya thamani, ikiwa inahusishwa.
fn:year-from-date(date)

Ina huzushi: inafiki niwele kwa sababu ya muda inayotumiwa kumeshika mwaka.

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

Matokeo: 2005

fn:month-from-date(date)

Itaonyesha thamani ya mwezi katika thamani ya tarehe.

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

Matokeo: 4

fn:day-from-date(date)

Itaonyesha thamani ya siku katika thamani ya tarehe.

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

Matokeo: 23

fn:timezone-from-date(date) Itaonyesha sehemu ya mji wa muda ya thamani, ikiwa inahusishwa.
fn:hours-from-time(time)

Itaonyesha thamani ya saa katika thamani ya muda.

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

Matokeo: 10

fn:minutes-from-time(time)

Itaonyesha thamani ya miniti katika thamani ya muda.

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

Matokeo: 22

fn:seconds-from-time(time)

Itaonyesha thamani ya sekunde katika thamani ya muda.

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

Matokeo: 0

fn:timezone-from-time(time) Itaonyesha sehemu ya mji wa muda ya thamani, ikiwa inahusishwa.
fn:adjust-dateTime-to-timezone(datetime,timezone) Ikiwa thamani timezone ni hauko, itaonyesha dateTime bila mji wa muda. Kwa nyingine itaonyesha dateTime na mji wa muda.
fn:adjust-date-to-timezone(date,timezone) Ikiwa thamani timezone ni hauko, itaonyesha tarehe bila mji wa muda. Kwa nyingine itaonyesha tarehe na mji wa muda.
fn:adjust-time-to-timezone(time,timezone) Ikiwa thamani timezone ni hauko, itaonyesha muda bila mji wa muda. Kwa nyingine itaonyesha muda na mji wa muda.

Funguo yenyeze za QNames

Jina Muhtasari
fn:QName()  
fn:local-name-from-QName()  
fn:namespace-uri-from-QName()  
fn:namespace-uri-for-prefix()  
fn:in-scope-prefixes()  
fn:resolve-QName()  

Funguo za mtokeo

Jina Muhtasari
  • fn:name()
  • fn:name(nodeset)
Inarudia jina la mtokeo wa mtokeo au mtokeo wa mtokeo wa mtokeo wa kwanza.
  • fn:local-name()
  • fn:local-name(nodeset)
Inarudia jina la mtokeo wa mtokeo au mtokeo wa mtokeo wa mtokeo wa kwanza - bila kifupi cha nafasi.
  • fn:namespace-uri()
  • fn:namespace-uri(nodeset)
Inarudia URI ya nafasi ya mtokeo wa mtokeo au mtokeo wa mtokeo wa mtokeo wa kwanza.
fn:lang(lang)

Inarudia kama true ikiwa ukingo wa mtokeo hauonekana kama ukingo wa kawaida ulioonyeshwa.

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

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

  • fn:root()
  • fn:root(node)
Inarudia mtokeo wa kina wa mitokeo ya mtokeo ambao inahusiana na mtokeo au mtokeo wa mtokeo wa mtokeo. Kwa kawaida ni mtokeo wa andiko.

Funguo za msingi

Funguo za kawaida

Jina Muhtasari
fn:index-of((item,item,...),searchitem)

Inarudia kiwango cha msingi katika msingi wa vifaa ambavyo ni kama searchitem.

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)

Inarudia msingi mpya kutoka kwa ujenzi wa parameter item - inasifanya kufungua kiwango cha parameter position.

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

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

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

Mfano: ("cd", "ef")

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

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

fn:empty(item,item,...)

Hakuna msingi kama msingi wa ujenzi, itaonyeshwa kwa true, inayotangulia kwa false.

Mfano: empty(remove(("ab", "cd"), 1))

Matokeo: false

fn:exists(item,item,...)

Inatuma true kama thamani ya kina haitakuwa upakana wakati mwingine, inatuma false kama thamani ya kina ni upakana.

Mfano: exists(remove(("ab"), 1))

Matokeo: false

fn:distinct-values((item,item,...),collation)

Inatuma thamani zinginezo kwa uwanja wa kumtaarifu.

Mfano: distinct-values((1, 2, 3, 1, 2))

Matokeo: (1, 2, 3)

fn:insert-before((item,item,...),pos,inserts)

Inatuma upakana mpya unaotumiwa na vipengele kwa uwanja wa item - inasaidia kuingiza thamani ya inserts kwa uwanja wa pos.

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

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

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

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

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

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

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

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

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

Inatuma vipengele kwa uringa wa kwanza iliyotumiwa kwenye utumiaji.

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

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

Mfano: reverse(("ab"))

Matokeo: ("ab")

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

Inatuma vipengele kwa uwanja wa kuanzia start na kufikia kwa uwanja wa len. Majukumu ya kwanza ni 1.

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

Matokeo: ($item3, ...)

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

Matokeo: ($item2, $item3)

fn:unordered((item,item,...)) Inatumia ordini iliyotumiwa kwenye utumiaji kubadilisha vipengele.

Fikia ya kumtaarifu ukurudisha uwezo wa msingi wa upakana

Jina Muhtasari
fn:zero-or-one(item,item,...) Inaisha thamani kama ina kiwango kidogo na kimoja, ikiwa hivyo na kumaliza kosa ikiwa ina kiwango kidogo na zaidi
fn:one-or-more(item,item,...) Inaisha thamani kama ina kiwango kimoja au zaidi, ikiwa hivyo na kumaliza kosa ikiwa ina kiwango kidogo
fn:exactly-one(item,item,...) Inaisha thamani kama ina kiwango kimoja, ikiwa hivyo na kumaliza kosa ikiwa ina kiwango kidogo

Sawa, Union, Intersection na Except

Jina Muhtasari
fn:deep-equal(param1,param2,collation) Inaisha true kama param1 na param2 ni sawa (deep-equal), ikiwa hivyo na false ikiwa ni sawa

Funguo ya kuzikilisha

Jina Muhtasari
fn:count((item,item,...)) Inaisha kina cha kina cha msingi
fn:avg((arg,arg,...))

Inaisha upelezi wa thamani wa thamani za kina cha msingi

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

Matokeo: 2

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

Inaisha thamani ambayo inapendekeza kwa thamani zingine

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

Matokeo: 3

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

Matokeo: 'k'

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

Inaisha thamani ambayo inapendekeza na thamani zingine

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

Matokeo: 1

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

Matokeo: 'a'

fn:sum(arg,arg,...) Inaisha kiasi cha kina cha thamani kwa kila kitumiaji katika kina cha thamani cha kina cha msingi

Funguo ya kuzalisha mstari

Jina Muhtasari
fn:id((string,string,...),node) Inaisha meelezo ya kizi ya kitumiaji kinachopatikana katika kipimo cha kina ya ID kinachopatikana katika kipimo cha kina cha kipimo cha msingi kinachotumiwa
fn:idref((string,string,...),node) Inaisha meelezo ya kizi ya kitumiaji au kina kiwango kinapatikana katika kipimo cha kina ya IDREF kinachopatikana katika kipimo cha kina cha kipimo cha msingi kinachotumiwa
fn:doc(URI)  
fn:doc-available(URI) If the doc() function returns a document node, it returns true, otherwise it returns false.
  • fn:collection()
  • fn:collection(string)
 

Mwili wa Kuelekea

Jina Muhtasari
fn:position()

Kurudi namba ya index ya hatua inayotumika kwa sasa.

Mfano: //book[position()<=3]

Matokeo: Chaguo kwa kuzingatia tatu kati ya kitabu kikuu

fn:last()

Kurudi namba ya majengo katika orodha ya hatua inayotumika.

Mfano: //book[last()]

Matokeo: Chaguo kwa kuzingatia mengine wa kitabu kikuu

fn:current-dateTime() Kurudi muda wa sasa na tarehe na muda wa kuzingatia.
fn:current-date() Kurudi tarehe ya sasa na muda wa kuzingatia.
fn:current-time() Kurudi muda wa sasa na muda wa kuzingatia.
fn:implicit-timezone() Kurudi thamani ya muda wa kuzingatia.
fn:default-collation() Kurudi thamani ya kuelekea kwa kuzingatia.
fn:static-base-uri() Kurudi thamani ya base-uri.