XSLT、XPath 以及 XQuery 函数
- Nangungunang Pahina Elemento ng XSLT
- Susunod na Pahina Tuturo ng XML
Ang XSLT 2.0, XPath 2.0 at XQuery 1.0 ay nagbabahagi ng parehong library ng function.
Function Reference Manual
Ang default na prefix ng namespace ng function ay:fn:
Ang URI ng namespace ng function ay:http://www.w3.org/2005/xpath-functions
Mga tip:Karaniwang ginagamit fn:
Ginagamit ang prefix upang tumawag sa function, halimbawa fn:string()
Gayunpaman, dahil sa fn:
Ito ay default na prefix ng namespace, kaya hindi kailangan magdagdag ng prefix sa pangalan ng function kapag tinatawag.
Access function
Pangalan | Paliwanag |
---|---|
fn:node-name(node) | Ibalik ang pangalan ng node ng argumento. |
fn:nilled(node) | Ibalik ang boolean value kung ang argumento ng node ay tinatanggap. |
fn:data(item.item,...) | Tinatanggap ng isang sequence ng item at ibabalik ang sequence ng atomic value. |
|
Ibalik ang halaga ng attribute na base-uri ng kasalukuyang o tinukoy na node. |
fn:document-uri(node) | Ibalik ang halaga ng attribute na document-uri ng tinukoy na node. |
Mga function ng error at trace
Pangalan | Paliwanag |
---|---|
|
Halimbawa: error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high') Resulta: Ibabalik sa labas na kapamahalaan ng pagproseso ang http://example.com/test#toohigh at ang string "Error: Price is too high". |
fn:trace(value,label) | Ginagamit para sa debug ng query. |
Mga function tungkol sa halaga
Pangalan | Paliwanag |
---|---|
fn:number(arg) |
Bilang resulta ng argumento ang halaga. Ang argumento ay maaaring maging boolean value, string o node set. Halimbawa: number('100') Nagtatanghal ng resulta: 100 |
fn:abs(num) |
Ibalik ang walang kabuluhan ng argumento. Halimbawa: abs(3.14) Nagtatanghal ng resulta: 3.14 Halimbawa: abs(-3.14) Nagtatanghal ng resulta: 3.14 |
fn:ceiling(num) |
Ibalik ang pinakamaliit na makatataas na integer na mas higit sa num na argumento. Halimbawa: ceiling(3.14) Resulta: 4 |
fn:floor(num) |
Ibalik ang pinakamalapit na makababang integer na hindi hihigit sa num na argumento. Halimbawa: floor(3.14) 结果:3 |
fn:round(num) |
Ihuhugis ang num na argumento sa pinakamalapit na integer. Halimbawa: round(3.14) 结果:3 |
fn:round-half-to-even() |
Halimbawa: round-half-to-even(0.5) Resulta: 0 Halimbawa: round-half-to-even(1.5) 结果:2 Halimbawa: round-half-to-even(2.5) 结果:2 |
Tungkol sa string na function
Pangalan | Paliwanag |
---|---|
fn:string(arg) |
Ibalik ang string na halaga ng argumento. Ang argumento ay maaaring maging numero, logical value o collection ng node. Halimbawa: string(314) Nagtatanghal ng resulta: "314" |
fn:codepoints-to-string(int,int,...) |
Ayon sa serye ng codepoint, ibalik ang string. Halimbawa: codepoints-to-string(84, 104, 233, 114, 232, 115, 101) Nagtatanghal ng resulta: 'Thérèse' |
fn:string-to-codepoints(string) |
Ayon sa string, ibalik ang serye ng codepoint. Halimbawa: string-to-codepoints("Thérèse") Nagtatanghal ng resulta: 84, 104, 233, 114, 232, 115, 101 |
fn:codepoint-equal(comp1,comp2) | Ayon sa pagkakasunod-sunod ng Unicode codepoint, kung ang halaga ng comp1 ay katumbas ng halaga ng comp2, ibalik true (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), kung hindi ibalik false. |
|
Kung maliit ang comp1 sa comp2, ibalik -1. Kung magkapareho ang comp1 at comp2, ibalik 0. Kung mas malaki ang comp1 kaysa sa comp2, ibalik 1 (ayon sa ginamit na panlabas na tuntunin). Halimbawa: compare('ghi', 'ghi') Resulta: 0 |
fn:concat(string,string,...) |
Ibalik ang pagkakasamang string. Halimbawa: concat('XPath ','is ','FUN!') Bilang resulta: 'XPath is FUN!' |
fn:string-join((string,string,...),sep) |
Gamitin ang sep na argumento bilang wakas para ibalik ang pinagsamang string ng string na argumento. Halimbawa: string-join(('We', 'are', 'having', 'fun!'), ' ') Bilang resulta: ' We are having fun! ' Halimbawa: string-join(('We', 'are', 'having', 'fun!')) Bilang resulta: 'Wearehavingfun!' Halimbawa: string-join((), 'sep') Bilang resulta: '' |
|
Ibalik ang tinukoy na habang na substring mula sa posisyon ng start. Ang unang character ay may index na 1. Kung pinaghiwalay ang len, ibalik ang substring mula posisyon ng start hanggang sa katapusan ng string. Halimbawa: substring('Beatles',1,4) Bilang resulta: 'Beat' Halimbawa: substring('Beatles',2) Bilang resulta: 'eatles' |
|
Ibalik ang haba ng tinukoy na string. Kung walang string na argumento, ibalik ang haba ng string na halaga ng kasalukuyang node. Halimbawa: string-length('Beatles') Bilang resulta: 7 |
|
Tanggalin ang mga puwang sa simula at katapusan ng tinukoy na string, at palitan ang lahat ng panlabas na puwang ng isang, at ibalik ang resulta. Kung walang string na argumento, iproceso ang kasalukuyang node. Halimbawa: normalize-space(' The XML ') Bilang resulta: 'The XML' |
fn:normalize-unicode() | Ipatupad ang pag-standardisasyon ng Unicode. |
fn:upper-case(string) |
Pagbaguhing mai-ucapan ang string na argumento. Halimbawa: upper-case('The XML') 结果:'THE XML' |
fn:lower-case(string) |
将 string 参数转换为小写。 例子:lower-case('The XML') 结果:'the xml' |
fn:translate(string1,string2,string3) |
将 string1 中的 string2 替换为 string3。 例子: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') Resulta: true |
fn:starts-with(string1,string2) |
如果 string1 以 string2 开始,则返回 true,否则返回 false。 例子:starts-with('XML','X') Resulta: true |
fn:ends-with(string1,string2) |
如果 string1 以 string2 结尾,则返回 true,否则返回 false。 例子:ends-with('XML','X') Naiulat: false |
fn:substring-before(string1,string2) |
返回 string1 在 string2 出现之前的子字符串。 Halimbawa: substring-before('12/10','/') Resulta: '12' |
fn:substring-after(string1,string2) |
Naglalaro ng susunod na substring ng string2 sa string1. Halimbawa: substring-after('12/10','/') Resulta: '10' |
fn:matches(string,pattern) |
Kung ang string na argumento ay tumutugma sa tinukoy na pattern, ibabalik ang true, kung hindi ay ibabalik ang false. Halimbawa: matches("Merano", "ran") Resulta: true |
fn:replace(string,pattern,replace) |
Nagpalitan ng tinukoy na pattern sa replace na naglalaro ng resulta. Halimbawa: replace("Bella Italia", "l", "*") Resulta: 'Be**a Ita*ia' Halimbawa: replace("Bella Italia", "l", "") Resulta: 'Bea Itaia' |
fn:tokenize(string,pattern) |
Halimbawa: tokenize("XPath is fun", "\s+") Resulta: ("XPath", "is", "fun") |
Function na may kaugnayan sa anyURI.
Pangalan | Paliwanag |
---|---|
fn:resolve-uri(relative,base) |
Function na may kaugnayan sa boolean.
Pangalan | Paliwanag |
---|---|
fn:boolean(arg) | Naglalaro ng boolean na may halaga ng number, string o node set. |
fn:not(arg) |
Una, nagpapanumbalik ng argumento ng boolean na may tulad na function na boolean(). Kung ang boolean na ito ay false, ibabalik ang true, kung hindi ay ibabalik ang true. Halimbawa: not(true()) Naiulat: false |
fn:true() |
Naglalaro ng boolean na may halaga na true. Halimbawa: true() Resulta: true |
fn:false() |
Naglalaro ng boolean na may halaga na false. Halimbawa: false() Naiulat: false |
Function na may kaugnayan sa tagal ng patuloy, petsa at oras.
Function para sa pagkuha ng komponente ng petsa, oras at tagal ng patuloy.
Pangalan | Paliwanag |
---|---|
fn:dateTime(date,time) | Nag-convert ng argumento ng date at time. |
fn:years-from-duration(datetimedur) | Naglalaro ng integer na bahagi ng taon ng sagot na ginagamit ang standard na paraan ng paglalarawan. |
fn:months-from-duration(datetimedur) | Naglalaro ng integer na bahagi ng buwan ng sagot na ginagamit ang standard na paraan ng paglalarawan. |
fn:days-from-duration(datetimedur) | Bumabalik ang integer na bahagi ng araw ng halaga ng argumento, na inilalarawan sa standard na paraan ng paglalathala ng salita. |
fn:hours-from-duration(datetimedur) | Bumabalik ang integer na bahagi ng oras ng halaga ng argumento, na inilalarawan sa standard na paraan ng paglalathala ng salita. |
fn:minutes-from-duration(datetimedur) | Bumabalik ang integer na bahagi ng minuto ng halaga ng argumento, na inilalarawan sa standard na paraan ng paglalathala ng salita. |
fn:seconds-from-duration(datetimedur) | Bumabalik ang decimal na bilang ng bahagi ng minuto ng halaga ng argumento, na inilalarawan sa standard na paraan ng paglalathala ng salita. |
fn:year-from-dateTime(datetime) |
Bumabalik ang integer na bahagi ng taon ng lokal na halaga ng argumento. Halimbawa: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resulta: 2005 |
fn:month-from-dateTime(datetime) |
Bumabalik ang integer na bahagi ng buwan ng lokal na halaga ng argumento. Halimbawa: month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resulta: 01 |
fn:day-from-dateTime(datetime) |
Bumabalik ang integer na bahagi ng araw ng lokal na halaga ng argumento. Halimbawa: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resulta: 10 |
fn:hours-from-dateTime(datetime) |
Bumabalik ang integer na bahagi ng oras ng lokal na halaga ng argumento. Halimbawa: hours-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resulta: 12 |
fn:minutes-from-dateTime(datetime) |
Bumabalik ang integer na bahagi ng minuto ng lokal na halaga ng argumento. Halimbawa: minutes-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10")) Resulta: 30 |
fn:seconds-from-dateTime(datetime) |
Bumabalik ang decimal na bilang ng detik ng lokal na halaga ng argumento. Halimbawa: seconds-from-dateTime(xs:dateTime("2005-01-10T12:30:00-04:10")) Resulta: 0 |
fn:timezone-from-dateTime(datetime) | Ibalik ang bahagi ng timezone ng parameter kung mayroon ito. |
fn:year-from-date(date) |
Ibalik ang integer na naglalaman ng mga taon sa lokal na halaga ng parameter. Halimbawa: year-from-date(xs:date("2005-04-23")) Resulta: 2005 |
fn:month-from-date(date) |
Ibalik ang integer na naglalaman ng mga buwan sa lokal na halaga ng parameter. Halimbawa: month-from-date(xs:date("2005-04-23")) Resulta: 4 |
fn:day-from-date(date) |
Ibalik ang integer na naglalaman ng mga araw sa lokal na halaga ng parameter. Halimbawa: day-from-date(xs:date("2005-04-23")) Resulta: 23 |
fn:timezone-from-date(date) | Ibalik ang bahagi ng timezone ng parameter kung mayroon ito. |
fn:hours-from-time(time) |
Ibalik ang integer na naglalaman ng mga oras sa lokal na halaga ng parameter. Halimbawa: hours-from-time(xs:time("10:22:00")) Resulta: 10 |
fn:minutes-from-time(time) |
Ibalik ang integer na naglalaman ng mga minute sa lokal na halaga ng parameter. Halimbawa: minutes-from-time(xs:time("10:22:00")) Resulta: 22 |
fn:seconds-from-time(time) |
Ibalik ang integer na naglalaman ng mga second sa lokal na halaga ng parameter. Halimbawa: seconds-from-time(xs:time("10:22:00")) Resulta: 0 |
fn:timezone-from-time(time) | Ibalik ang bahagi ng timezone ng parameter kung mayroon ito. |
fn:adjust-dateTime-to-timezone(datetime,timezone) |
Kung ang parameter ng timezone ay walang laman, ibabalik ang dateTime na walang timezone. Kung hindi, ibabalik ang dateTime na may timezone. |
fn:adjust-date-to-timezone(date,timezone) |
Kung ang parameter ng timezone ay walang laman, ibabalik ang petsa na walang timezone. Kung hindi, ibabalik ang petsa na may timezone. |
fn:adjust-time-to-timezone(time,timezone) |
Kung ang parameter ng timezone ay walang laman, ibabalik ang oras na walang timezone. Kung hindi, ibabalik ang time na may timezone. |
Function tungkol sa QNames
Pangalan | Paliwanag |
---|---|
fn:QName() | |
fn:local-name-from-QName() | |
fn:namespace-uri-from-QName() | |
fn:namespace-uri-for-prefix() | |
fn:in-scope-prefixes() | |
fn:resolve-QName() |
Function tungkol sa node
Pangalan | Paliwanag |
---|---|
|
Binubuo ng pangalan ng current na node o na itinalaga na set ng node. |
|
Binubuo ng pangalan ng current na node o na itinalaga na set ng node - walang namespace na pangalan. |
|
Binubuo ng namespace URI ng current na node o na itinalaga na set ng node. |
fn:lang(lang) |
Kung ang wika ng kasalukuyang node ay tumugma sa na itinalaga na wika, ibabalik ang true. Halimbawa: Lang("en") ay true para sa <p xml:lang="en">...</p> Halimbawa: Lang("de") ay false para sa <p xml:lang="en">...</p> |
|
Binubuo ng pangunahing node ng puno ng node na may kaparehong current na node o na itinalaga na node. Ito ay karaniwang dokumentong node. |
Function tungkol sa pagkakasunod-sunod
Umamahinang function
Pangalan | Paliwanag |
---|---|
fn:index-of((item,item,...),searchitem) |
Binubuo ng posisyon sa pagkakasunod-sunod ng item na tumatalaga ng searchitem na parameter. Halimbawa: index-of ((15, 40, 25, 40, 10), 40) Halimbawa: (2, 4) Halimbawa: index-of (("a", "dog", "and", "a", "duck"), "a") Halimbawa: (1, 4) Halimbawa: index-of ((15, 40, 25, 40, 10), 18) Halimbawa: () |
fn:remove((item,item,...),position) |
Binubuo ng bagong pagkakasunod-sunod ng item na parameter - samantala na inaalis ang nilalangit na item na parameter. Halimbawa: remove(("ab", "cd", "ef"), 0) Naiulat: ("ab", "cd", "ef") Halimbawa: remove(("ab", "cd", "ef"), 1) Naiulat: ("cd", "ef") Halimbawa: remove(("ab", "cd", "ef"), 4) Naiulat: ("ab", "cd", "ef") |
fn:empty(item,item,...) |
Kung ang halaga ng parameter ay walang laman na serye, ibabalik ang true, kung hindi ibabalik ang false. Halimbawa: empty(remove(("ab", "cd"), 1)) Naiulat: false |
fn:exists(item,item,...) |
Kung ang halaga ng parameter ay hindi walang laman na serye, ibabalik ang true, kung hindi ibabalik ang false. Halimbawa: exists(remove(("ab"), 1)) Naiulat: false |
fn:distinct-values((item,item,...),collation) |
Binabalik ang mga magkakaibang halaga. Halimbawa: distinct-values((1, 2, 3, 1, 2)) Naiulat: (1, 2, 3) |
fn:insert-before((item,item,...),pos,inserts) |
Binabalik ang bagong serye na binuo ng parameter na item, kasama ang pagkakabit sa posisyon na tinukoy ng parameter na pos ng mga halaga ng inserts. Halimbawa: insert-before(("ab", "cd"), 0, "gh") Naiulat: ("gh", "ab", "cd") Halimbawa: insert-before(("ab", "cd"), 1, "gh") Naiulat: ("gh", "ab", "cd") Halimbawa: insert-before(("ab", "cd"), 2, "gh") Naiulat: ("ab", "gh", "cd") Halimbawa: insert-before(("ab", "cd"), 5, "gh") Naiulat: ("ab", "cd", "gh") |
fn:reverse((item,item,...)) |
Binabalik ang inirerekumendang proyekto sa kabaligtaran na talugan. Halimbawa: reverse(("ab", "cd", "ef")) Naiulat: ("ef", "cd", "ab") Halimbawa: reverse(("ab")) Naiulat: ("ab") |
fn:subsequence((item,item,...),start,len) |
Binabalik ang proyekto sa posisyon na tinukoy ng parameter na start, ang haba ng serye ay tinukoy ng parameter na len. Ang posisyon ng unang proyekto ay 1. Halimbawa: subsequence(($item1, $item2, $item3,...), 3) 结果:($item3, ...) 例子:subsequence(($item1, $item2, $item3, ...), 2, 2) 结果:($item2, $item3) |
fn:unordered((item,item,...)) | 依据实现决定的顺序来返回项目。 |
测试序列容量的函数
Pangalan | Paliwanag |
---|---|
fn:zero-or-one(item,item,...) | 如果参数包含零个或一个项目,则返回参数,否则生成错误。 |
fn:one-or-more(item,item,...) | 如果参数包含一个或多个项目,则返回参数,否则生成错误。 |
fn:exactly-one(item,item,...) | 如果参数包含一个项目,则返回参数,否则生成错误。 |
Equals, Union, Intersection and Except
Pangalan | Paliwanag |
---|---|
fn:deep-equal(param1,param2,collation) | 如果 param1 和 param2 与彼此相等(deep-equal),则返回 true,否则返回 false。 |
合计函数
Pangalan | Paliwanag |
---|---|
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,...) | 返回指定节点集中每个节点的数值的总和。 |
生成序列的函数
Pangalan | Paliwanag |
---|---|
fn:id((string,string,...),node) | 返回元素节点序列,这些节点的 ID 值等于 string 参数中指定的一个或多个值。 |
fn:idref((string,string,...),node) | 返回元素或属性节点序列,这些节点的 IDREF 值等于 string 参数中指定的一个或多个值。 |
fn:doc(URI) | |
fn:doc-available(URI) | Kung ang function na doc() ay nagbibigay ng dokumentong node, ay ibibigay ang true, kung hindi ay ibibigay ang false. |
|
Function ng Kapatagan
Pangalan | Paliwanag |
---|---|
fn:position() |
Bakauban ang index na posisyon ng kasalukuyang hinahawakan na node. Halimbawa: //book[position()<=3] Hasil: Pinili ang unang tatlong book elemento |
fn:last() |
Bakauban ang bilang ng mga item sa listahan ng hinahawakan na node. Halimbawa: //book[last()] Hasil: Pinili ang huling book elemento |
fn:current-dateTime() | Bakauban ang kasalukuyang dateTime (may timezone). |
fn:current-date() | Bakauban ang kasalukuyang petsa (may timezone). |
fn:current-time() | Bakauban ang kasalukuyang oras (may timezone). |
fn:implicit-timezone() | Bakauban ang halaga ng implicit na timezone. |
fn:default-collation() | Bakauban ang halaga ng default na pagkakasunod-sunod. |
fn:static-base-uri() | Bakauban ang halaga ng base-uri. |
Function ng XSLT
Ginagamit din ang mga sumusunod na inangatanging function ng XSLT:
Pangalan | Paglalarawan |
---|---|
current() | Bakauban ang kasalukuyang node bilang isang solong miyembro ng node-set. |
document() | Ginagamit upang ma-access ang mga node sa panlabas na XML dokumento. |
element-available() | Surunod ang XSLT processor kung mayroon itong tinukoy na elemento. |
format-number() | Ihawak ang numero at magiging string. |
function-available() | Surunod ang XSLT processor kung mayroon itong tinukoy na function. |
generate-id() | Bakauban ang isang tanging string na nagmumuna sa tinukoy na node. |
key() | Hahanapin ang mga elemento na pinagkilala ng <xsl:key> na pahayag. |
node-set | Ihawak ang puno at magiging node-set. Ang pinagmulan na node-set ay laging naglalaman ng isang solong node at ang pinagmulan ng puno. |
system-property() | Bakauban ang halaga ng sistema na propetary. |
unparsed-entity-uri() | Bakauban ang URI ng hindi napagpahintulutang entity. |
- Nangungunang Pahina Elemento ng XSLT
- Susunod na Pahina Tuturo ng XML