Ultimele tutoriale de dezvoltare web
 

XSLT XPath și XQuery Funcții


XSLT 2.0, XPath 2.0 și XQuery 1.0, împărtășesc aceeași bibliotecă funcții.


funcţii de referință

Prefixul implicit pentru spațiul de nume este funcția fn:
URI-ul este spațiul de nume funcției: http://www.w3.org/2005/xpath-functions

Tip: Funcțiile sunt adesea numite cu fn: prefix, cum ar fi fn: string() . Cu toate acestea, din moment ce fn: este prefixul implicit al spațiului de nume, numele funcției nu trebuie să fie prefixat atunci când este solicitat.

Funcții accessor

Nume Descriere
fn:node- name( node ) Returnează nodul-numele nodului argument
fn: nilled( node ) Returnează o valoare boolean care indică dacă nodul argument este nilled
fn: data( item.item,... ) Ia o secvență de elemente și returnează o secvență de valori atomice
fn:base- uri()
fn:base- uri( node )
Returnează valoarea proprietății de bază-uri a nodului curent sau specificat
fn:document- uri( node ) Returnează valoarea proprietății documentului-uri pentru nodul specificat

Eroare și Trace Funcții

Nume Descriere
fn: error()
fn: error( error )
fn: error( error,description )
fn: error( error,description,error-object )
Exemplu: error(fn: QName('http://example.com/test', 'err:toohigh') , 'Eroare: Pretul este prea mare')

Rezultat: Returnează http://example.com/test#toohigh și șirul "Error: Price is too high" pentru mediul de procesare extern

fn: trace( value,label ) Folosit pentru interogări de depanare

Funcții privind valorile numerice

Nume Descriere
fn: number( arg ) Returnează valoarea numerică a argumentului. Argumentul ar putea fi un boolean, string, sau nod-set

Exemplu: number('100')
Rezultat: 100

fn: abs( num ) Returnează valoarea absolută a argumentului

Exemplu: abs(3.14)
Rezultat: 3.14

Exemplu: abs(-3.14)
Rezultat: 3.14

fn: ceiling( num ) Returnează cel mai mic întreg care este mai mare decât numărul de argumentul

Exemplu: ceiling(3.14)
Rezultat: 4

fn: floor( num ) Returnează cel mai mare întreg care nu este mai mare decât numărul de argumentul

Exemplu: floor(3.14)
Rezultat: 3

fn: round( num ) Rotunjește argumentul număr la cel mai apropiat întreg

Exemplu: round(3.14)
Rezultat: 3

fn:round-half-to- even() Exemplu: rotund-jumătate-to even(0.5)
Rezultat: 0

Exemplu: rotund-jumătate-to even(1.5)
Rezultat: 2

Exemplu: rotund-jumătate-to even(2.5)
Rezultat: 2

Funcții pe siruri

Nume Descriere
fn: string( arg ) Returnează valoarea șir a argumentului. Argumentul ar putea fi un număr, boolean, sau nod-set

Exemplu: string(314)
Rezultat: "314"

fn:codepoints-to- string(( int,int,... ) ) Creează un șir de caractere dintr-o secvență de puncte de cod Unicode Standard

Exemplu:-la- puncte de cod string((84, 104, 233, 114, 232, 115, 101) )
Rezultat: 'Thrse'

fn:string-to- codepoints( string ) Returnează secvența punctelor de cod standard Unicode dintr-un șir de caractere

Exemplu: string-to - codepoints("Th r se") de codepoints("Th r se")
Rezultat: (84, 104, 233, 114, 232, 115, 101)

fn:codepoint- equal( comp1,comp2 ) Returnează true dacă valoarea COMP1 este egală cu valoarea comp2, în conformitate cu punctul de cod Unicode colaționarea (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) , în caz contrar returnează false
fn: compare( comp1,comp2 )
fn: compare( comp1,comp2,collation )
Returnează -1 dacă COMP1 este mai mică decât comp2, 0 dacă COMP1 este egal cu comp2 sau 1 dacă COMP1 este mai mare decât comp2 (conform regulilor interclasarea care este utilizat)

Exemplu: compare('ghi', 'ghi')
Rezultat: 0

fn: concat( string,string,... ) Returnează concatenarea siruri de caractere

Exemplu: concat('XPath ','is ','FUN!')
Rezultat: „XPath este distractiv!“

fn:string- join( (string,string,...) ,sep) Returnează un șir de caractere creat de concatenand argumentele string si folosind argumentul sep ca separator

Exemplu: STRING se join(('We', 'are', 'having', 'fun!') , ' „)
Rezultat: "Ne distram! '

Exemplu: STRING se join(('We', 'are', 'having', 'fun!') )
Rezultat: 'Wearehavingfun!'

Exemplu: string- join(() , "inginerești)
Rezultat: „“

fn: substring( string,start,len )
fn: substring( string,start )
Returnează subșirul din poziția de start la lungimea specificată. Indicele primului caracter este 1. Dacă lungimea este omis returnează subșirul din poziția de start la sfârșitul anului

Exemplu: substring('Beatles',1,4)
Rezultat: 'Beat'

Exemplu: substring('Beatles',2)
Rezultat: '' eatles

fn:string- length( string )
fn:string- length()
Returnează lungimea șirului specificat. Dacă nu există nici un argument șir de caractere returnează lungimea valoarea șir a nodului curent

Exemplu: string- length('Beatles')
Rezultat: 7

fn:normalize- space( string )
fn:normalize- space()
Îndepărtează început și de final spațiile din șirul specificat, și înlocuiește toate secvențele interne ale spațiului alb cu unul și returnează rezultatul. Dacă nu există nici un argument șir face același lucru pe nodul curent

Exemplu: normalize- space(' The XML ')
Rezultat: „XML“

fn:normalize- unicode()
fn:upper- case( string ) Convertește argumentul șir la majuscule

Exemplu: - sus case('The XML')
Rezultat: „XML-ul“

fn:lower- case( string ) Convertește argumentul string la litere mici

Exemplu: , jos , case('The XML')
Rezultat: „XML“

fn: translate( string1,string2,string3 ) Transformă șir1 prin înlocuirea caracterelor în string2 cu caracterele din String3

Exemplu: translate('12:30','30','45')
Rezultat: '12: 45'

Exemplu: translate('12:30','03','54')
Rezultat: '12: 45'

Exemplu: translate('12:30','0123','abcd')
Rezultat: 'bc: da'

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

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

Exemplu: de evacuare-uri ("http://example.com/~b b ", false() )
Rezultat: "http://example.com/~b%C3%A9b%C3%A9"

fn: contains( string1,string2 ) Returnează true dacă șir1 conține string2, altfel returnează false

Exemplu: contains('XML','XM')
Rezultat: true

fn:starts- with( string1,string2 ) Returnează true dacă șir1 începe cu string2, altfel returnează false

Exemplu: starts- with('XML','X')
Rezultat: true

fn:ends- with( string1,string2 ) Returnează true dacă șir1 se termină cu string2, altfel returnează false

Exemplu: ends- with('XML','X')
Rezultat: fals

fn:substring- before( string1,string2 ) Returnează începutul șir1 înainte de a se produce string2 în ea

Exemplu: substring- before('12/10','/')
Rezultat: '12'

fn:substring- after( string1,string2 ) Returnează restul șir1 după ce are loc în ea string2

Exemplu: substring- after('12/10','/')
Rezultat: '10'

fn: matches( string,pattern ) Returnează true dacă argumentul șir se potrivește cu modelul, în caz contrar, returnează false

Exemplu: matches("Merano", "ran") a matches("Merano", "ran")
Rezultat: true

fn: replace( string,pattern,replace ) Returnează un șir de caractere care este creat prin înlocuirea modelului dat cu argumentul înlocui

Exemplu: replace("Bella Italia", "l" , "*")
Rezultat: 'Be ** un Ita * ia'

Exemplu: replace("Bella Italia", "l" , "")
Rezultat: 'Bea Itaia'

fn: tokenize( string,pattern ) Exemplu: tokenize("XPath is fun", "\s+")
Rezultat: ("XPath", "is" , "fun")

Funcții pentru anyURI

Nume Descriere
fn:resolve- uri( relative,base )

Funcții privind valorile booleene

Nume Descriere
fn: boolean( arg ) Returnează o valoare booleană pentru un număr, șir de caractere, sau nod-set
fn: not( arg ) Argumentul este mai întâi redusă la o valoare boolean prin aplicarea boolean() funcția. Returnează TRUE dacă valoarea boolean este falsă, și fals în cazul în care valoarea boolean este adevărat

Exemplu: not( true() )
Rezultat: fals

fn: true() Returnează valoarea boolean true

Exemplu: true()
Rezultat: true

fn: false() Returnează valoarea boolean false

Exemplu: false()
Rezultat: fals

Funcții pe Durate, datele și orele

Funcții de extragere a componentei pe duratelor, datele și orele

Nume Descriere
fn: dateTime( date,time ) Convertește argumentele la o dată și o oră
fn:years-from- duration( datetimedur ) Returnează un număr întreg care reprezintă componenta de ani în reprezentarea lexicală canonică a valorii argumentului
fn:months-from- duration( datetimedur ) Returnează un număr întreg care reprezintă componenta luni în reprezentarea lexicală canonică a valorii argumentului
fn:days-from- duration( datetimedur ) Returnează un număr întreg care reprezintă componenta de zile în reprezentarea lexicală canonică a valorii argumentului
fn:hours-from- duration( datetimedur ) Returnează un număr întreg care reprezintă componenta de ore în reprezentarea lexical canonică a valorii argumentului
fn:minutes-from- duration( datetimedur ) Returnează un număr întreg care reprezintă componenta minute în reprezentarea lexical canonică a valorii argumentului
fn:seconds-from- duration( datetimedur ) Returnează o zecimală care reprezintă componenta secunde în reprezentarea lexicală canonică a valorii argumentului
fn:year-from- dateTime( datetime ) Returnează un număr întreg care reprezintă componenta an în valoarea localizată a argumentului

Exemplu: la- ani dateTime(xs: dateTime("2005-01-10T12:30-04:10") )
Rezultat: 2005

fn:month-from- dateTime( datetime ) Returnează un număr întreg care reprezintă componenta luni în valoarea localizată a argumentului

Exemplu: luni-la- dateTime(xs: dateTime("2005-01-10T12:30-04:10") )
Rezultat: 01

fn:day-from- dateTime( datetime ) Returnează un număr întreg care reprezintă componenta zi în valoarea localizată a argumentului

Exemplu: zi-la- dateTime(xs: dateTime("2005-01-10T12:30-04:10") )
Rezultat: 10

fn:hours-from- dateTime( datetime ) Returnează un număr întreg care reprezintă componenta ore în valoarea localizată a argumentului

Exemplu: ore-la- dateTime(xs: dateTime("2005-01-10T12:30-04:10") )
Rezultat: 12

fn:minutes-from- dateTime( datetime ) Returnează un număr întreg care reprezintă componenta minute în valoarea localizată a argumentului

Exemplu: minute-la- dateTime(xs: dateTime("2005-01-10T12:30-04:10") )
Rezultat: 30

fn:seconds-from- dateTime( datetime ) Returnează o zecimală care reprezintă componenta secunde în valoarea localizată a argumentului

Exemplu: sec-la- dateTime(xs: dateTime("2005-01-10T12:30:00-04:10") )
Rezultat: 0

fn:timezone-from- dateTime( datetime ) Returnează componenta de fus orar al argumentului dacă există
fn:year-from- date( date ) Returnează un număr întreg care reprezintă anul în valoarea localizată a argumentului

Exemplu: an de la- date(xs: date("2005-04-23") )
Rezultat: 2005

fn:month-from- date( date ) Returnează un număr întreg care reprezintă luna în valoarea localizată a argumentului

Exemplu: luni-la- date(xs: date("2005-04-23") )
Rezultat: 4

fn:day-from- date( date ) Returnează un număr întreg care reprezintă ziua în valoarea localizată a argumentului

Exemplu: zi-la- date(xs: date("2005-04-23") )
Rezultat: 23

fn:timezone-from- date( date ) Returnează componenta de fus orar al argumentului dacă există
fn:hours-from- time( time ) Returnează un număr întreg care reprezintă componenta ore în valoarea localizată a argumentului

Exemplu: ore-la- time(xs: time("10:22:00") )
Rezultat: 10

fn:minutes-from- time( time ) Returnează un număr întreg care reprezintă componenta minute în valoarea localizată a argumentului

Exemplu: minute-la- time(xs: time("10:22:00") )
Rezultat: 22

fn:seconds-from- time( time ) Returnează un număr întreg care reprezintă componenta secunde în valoarea localizată a argumentului

Exemplu: sec-la- time(xs: time("10:22:00") )
Rezultat: 0

fn:timezone-from- time( time ) Returnează componenta de fus orar al argumentului dacă există
fn:adjust-dateTime-to- timezone( datetime,timezone ) Dacă argumentul zonei de fus orar este gol, returnează un dateTime fără un fus orar. În caz contrar, returnează un dateTime cu un fus orar
fn:adjust-date-to- timezone( date ,timezone ) Dacă argumentul zonei de fus orar este gol, returnează o dată, fără un fus orar. În caz contrar, returnează o dată cu un fus orar
fn:adjust-time-to- timezone( time ,timezone ) Dacă argumentul zonei de fus orar este gol, returneaza un timp, fără un fus orar. În caz contrar, returnează un timp cu un fus orar

Funcții legate de QNames

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

Funcții pe Nodurile

Nume Descriere
fn: name()
fn: name( nodeset )
Returnează numele nodului curent sau primul nod din set nod specificat
fn:local- name()
fn:local- name( nodeset )
Returnează numele nodului curent sau primul nod din set nod specificat - fără prefixul de spațiu de nume
fn:namespace- uri()
fn:namespace- uri( nodeset )
Returnează namespace URI al nodului curent sau primul nod din set nod specificat
fn: lang( lang ) Returnează true dacă limba nodului curent se potrivește cu limba de limba specificată

Exemplu: Lang("en") este adevărat pentru
<P xml: lang = "en"> ... </ p>

Exemplu: Lang("de") este falsă pentru
<P xml: lang = "en"> ... </ p>

fn: root()
fn: root( node )
Returnează rădăcina arborelui căruia îi aparține nodul curent sau specificat. Acest lucru va fi, de obicei, un nod de document

Funcții pe Secvențe

Funcții generale privind Secvențe

Nume Descriere
fn:index- of( (item,item,...) ,searchitem) Returnează pozițiile în secvența de elemente care sunt egale cu argumentul searchitem

Exemplu: index-a ((15, 40, 25, 40, 10) , 40)
Rezultat: (2, 4)

Exemplu: index-a (("a", "dog" , "and" , "a" , "duck") , "a")
Rezultat (1, 4)

Exemplu: index-a ((15, 40, 25, 40, 10) , 18)
Rezultat: ()

fn: remove( (item,item,...) ,position) Returnează o nouă secvență construită din valoarea argumentelor de elemente - cu elementul specificat de argumentul poziția eliminat

Exemplu: remove(("ab", "cd" , "ef") , 0)
Rezultat: ("ab", "cd" , "ef")

Exemplu: remove(("ab", "cd" , "ef") , 1)
Rezultat: ("cd", "ef")

Exemplu: remove(("ab", "cd" , "ef") , 4)
Rezultat: ("ab", "cd" , "ef")

fn: empty( item,item,... ) Returnează true dacă valoarea argumentelor este o secvență de gol, în caz contrar returnează false

Exemplu: empty( remove(("ab", "cd") , 1))
Rezultat: fals

fn: exists( item,item,... ) Returnează true dacă valoarea argumentelor nu este o secvență de gol, în caz contrar returnează false

Exemplu: exists( remove(("ab") , 1))
Rezultat: fals

fn:distinct- values( (item,item,...) ,collation) Returnează numai distincte (different) valori

Exemplu: distinct- values((1, 2, 3, 1, 2) )
Rezultat: (1, 2, 3)

fn:insert- before( (item,item,...) ,pos,inserts) Returnează o nouă secvență construită din valoarea argumentelor de elemente - cu valoarea argumentului inserturi inserat în poziția specificată de argumentul pos

Exemplu: Insert- before(("ab", "cd") , 0, "gh")
Rezultat: ("gh", "ab" , "cd")

Exemplu: Insert- before(("ab", "cd") , 1, "gh")
Rezultat: ("gh", "ab" , "cd")

Exemplu: Insert- before(("ab", "cd") , 2, "gh")
Rezultat: ("ab", "gh" , "cd")

Exemplu: Insert- before(("ab", "cd") , 5, "gh")
Rezultat: ("ab", "cd" , "gh")

fn: reverse( (item,item,...) ) Returnează ordinea inversă a elementelor specificate

Exemplu: reverse(("ab", "cd" , "ef") )
Rezultat: ("ef", "cd" , "ab")

Exemplu: reverse(("ab") )
Rezultat: ("ab")

fn: subsequence( (item,item,...) ,start,len) Returnează o secvență de elemente din poziția specificată de argumentul de început și continuă pentru numărul de elemente specificate de argumentul Len. Primul element este situat la poziția 1

Exemplu: subsequence(($item1, $item2, $item3,...) , 3)
Rezultat: ($item3, ...)

Exemplu: subsequence(($item1, $item2, $item3, ...) , 2, 2)
Rezultat: ($item2, $item3)

fn: unordered( (item,item,...) ) Returnează elementele într-o ordine dependentă de punere în aplicare

Funcții care testează cardinalitatea Secvențe

Nume Descriere
fn:zero-or- one( item,item,... ) Returnează argumentul dacă conține zero sau un produs, în caz contrar se ridică o eroare
fn:one-or- more( item,item,... ) Returnează argumentul dacă conține unul sau mai multe elemente, în caz contrar se ridică o eroare
fn:exactly- one( item,item,... ) Returnează argumentul dacă conține exact un element, în caz contrar se ridică o eroare

Este egal, Union, Intersecția și cu excepția

Nume Descriere
fn:deep- equal( param1,param2,collation ) Returnează true dacă param1 și param2 sunt profunde egale între ele, în caz contrar returnează false

Funcții agregate

Nume Descriere
fn: count( (item,item,...) ) Întoarce numărul de noduri
fn: avg( (arg,arg,...) ) Returnează media valorilor argument

Exemplu: avg((1,2,3) )
Rezultat: 2

fn: max( (arg,arg,...) ) Returnează argumentul că este mai mare decât ceilalți

Exemplu: max((1,2,3) )
Rezultat: 3

Exemplu: max(('a', 'k') )
Rezultat: 'k'

fn: min( (arg,arg,...) ) Returnează argumentul că este mai mică decât ceilalți

Exemplu: min((1,2,3) )
Rezultat: 1

Exemplu: min(('a', 'k') )
Rezultat: 'a'

fn: sum( arg,arg,... ) Returnează suma valoarea numerică a fiecărui nod în nod specificat-set

Funcții care generează Secvențe

Nume Descriere
fn: id( (string,string,...) ,node) Returnează o secvență de noduri elementului care au o valoare ID egală cu valoarea uneia sau mai multora dintre valorile specificate în argumentul șir
fn: idref( (string,string,...) ,node) Returnează o secvență de element sau atribut noduri care au o valoare IDREF egală cu valoarea unuia sau mai multora dintre valorile specificate în argumentul șir
fn: doc( URI )
fn:doc- available( URI ) Returnează true dacă doc() funcția returnează un nod de document, în caz contrar returnează false
fn: collection()
fn: collection( string )

Funcții Context

Nume Descriere
fn: position() Returnează poziția index al nodului, care este în prezent în curs de procesare

Exemplu: // carte [ position() <= 3]
Rezultat: Selectează primele trei elemente de carte

fn: last() Returnează numărul de elemente din lista de noduri prelucrate

Exemplu: // carte [ last() ]
Rezultat: Selectează ultimul element de carte

fn:current- dateTime() Returnează Datăoră curent (with timezone)
fn:current- date() Returnează data curentă (with timezone)
fn:current- time() Returnează ora curentă (with timezone)
fn:implicit- timezone() Returnează valoarea implicită de fus orar
fn:default- collation() Returnează valoarea implicită colaționare
fn:static-base- uri() Returnează valoarea bazei-uri

Funcții XSLT

În plus, există următoarele funcții predefinite XSLT:

Nume Descriere
current() Returnează nodul curent
document() Folosit pentru a avea acces la nodurile într-un document XML extern
element- available() Testele dacă elementul specificat este suportat de către procesorul XSLT
format- number() Conversia unui număr într-un șir de caractere
function- available() Testele dacă funcția specificată este susținută de procesorul XSLT
generate- id() Returnează o valoare șir de caractere care identifică în mod unic un nod specificat
key() Returnează un nod-set folosind indexul specificat printr - o <xsl:key> Element
system- property() Returnează valoarea proprietăților sistemului
unparsed-entity- uri() Returnează URI-ul unei entități neparsate