Funcions XPath

Publicat el 20/12/2008

El prefix més usual de l'espai de noms per les funcions XPath (http://www.w3.org/2005/02/xpath-functions) és fn.

fn:abs(input) (XPath 2.0)

Rep un paràmetre de tipus numèric (xs:integer, xs:float, xs:double o xs:decimal) i retorna el valor absolut del mateix tipus.

fn:adjust-date-to-timezone(input?, timezone?) (XPath 2.0)

Rep un primer paràmetre de tipus data (xs:date), un segon paràmetre de tipus període (xs:dayTimeDuration) i retorna una data (xs:date) modificada en funció del fus horari indicat explícitament, com a segon paràmetre o al context.

fn:adjust-dateTime-to-timezone(input?, timezone?) (XPath 2.0)

Rep un primer paràmetre de tipus data (xs:dateTime), un segon paràmetre de tipus període (xs:dayTimeDuration) i retorna una data (xs:dateTime) modificada en funció del fus horari indicat explícitament, com a segon paràmetre o al context.

fn:adjust-time-to-timezone(input?, timezone?) (XPath 2.0)

Rep un primer paràmetre de tipus hora (xs:time), un segon paràmetre de tipus període (xs:dayTimeDuration) i retorna una hora (xs:time) modificada en funció del fus horari indicat explícitament, com a segon paràmetre o al context.

fn:avg(input*) (XPath 2.0)

Rep una seqüència (xs:anyAtomicType) i retorna el promig (xs:anyAtomicType).

fn:base-uri(input?) (XPath 2.0)

Rep un paràmetre de tipus node() i retorna una URI (xs:anyURI) corresponent al valor de la propietat base-uri del paràmetre.

fn:boolean(input*) (XPath 1.0+)

Rep una seqüència de paràmetres de tipus item() i retorna cert o fals (xs:boolean) com a resultat d'evaluar la seqüència.

fn:ceiling(input) (XPath 1.0+)

Rep un paràmetre de tipus numèric (xs:integer, xs:float, xs:double o xs:decimal) i retorna l'enter més proper a l'alça.

fn:codepoint-equal(input, input) (XPath 2.0)

Rep dues cadenes (xs:string) com a primer i segon paràmetere i retorna cert o fals (xs:boolean) segons les pautes de confrontació Unicode (http://www.w3.org/2005/xpath-functions/collation/codepoint).

fn:codepoints-to-string(input*) (XPath 2.0)

Rep una seqüència d'enters (xs:integer) i retorna una cadena (xs:string).

fn:collection(input?) (XPath 2.0)

Rep una URI (xs:string) d'un document de tipus collection i retorna una seqüencia (node()) resultat de carregar la col·lecció de documents.

fn:compare(input, input, collation?) (XPath 2.0)

Rep dues cadenes (xs:string) com a primer i segon paràmetere i retorna -1, 0 o 1 en funció de si el resultat de la comparació és menor, igual, o major segons les pautes de confrontació.

El tercer paràmetre és una cadena (xs:string) que proporciona, de forma opcional, unes pautes de confrontació específiques.

fn:concat(input, input+) (XPath 1.0+)

Rep dos o més paràmetres de qualsevol tipus (xs:anyAtomicType) i retorna una cadena (xs:string) conseqüència de la unió ordenada d'aquests.

fn:contains(input?, pattern?, collation?) (XPath 1.0+)

Rep dos paràmetres de tipus cadena (xs:string) i retorna cert o fals (xs:boolean) en funció de si el segon paràmetre existeix en algun fragment del primer.

Opcionalment rep un tercer paràmetre de tipus cadena (xs:string) que defineix les pautes de confrontació. Aquest darrer paràmetre existeix des de XPath 2.0

fn:count(input*) (XPath 1.0+)

Rep una seqüència (item()) i retorna el número (xs:integer) d'ítems d'aquesta.

fn:current-date() (XPath 2.0)

Retorna la data (xs:date) actual amb fus horari.

fn:current-dateTime() (XPath 2.0)

Retorna la data (xs:dateTime) actual amb fus horari.

fn:current-time() (XPath 2.0)

Retorna l'hora (xs:time) actual amb fus horari.

fn:data(input*) (XPath 2.0)

Rep una seqüència de tipus item() i retorna una seqüència de valors (xs:anyAtomicType).

fn:dateTime(date?, time?) (XPath 2.0)

Rep un primer paràmetre de tipus data (xs:date), un segon paràmetre de tipus hora (xs:time) i retorna una data (xs:dateTime).

fn:day-from-date(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:date) i retorna un enter (xs:integer) entre 0 i 31 com a valor del dia de la data.

fn:day-from-dateTime(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:dateTime) i retorna un enter (xs:integer) entre 0 i 31 com a valor del dia de la data.

fn:days-from-duration(input?) (XPath 2.0)

Rep un paràmetre de tipus període (xs:duration) i retorna un enter (xs:integer) com a valor dels dies del període.

fn:deep-equal(input*, input*, collation?) (XPath 2.0)

Rep dues seqüències (item()) i retorna cert (xs:boolean) si aquestes són exactament iguals.

El tercer paràmetre és una cadena (xs:string) que proporciona, de forma opcional, unes pautes de confrontació específiques.

fn:default-collation() (XPath 2.0)

Retorna la URI (xs:string) de confrontació per defecte.

fn:distinct-values(input*, collation?) (XPath 2.0)

Rep una seqüència (xs:anyAtomicType) i retorna una seqüència (xs:anyAtomicType) eliminant els valors duplicats de la original.

El segon paràmetre és una cadena (xs:string) que proporciona, de forma opcional, unes pautes de confrontació específiques.

fn:doc-available(input?) (XPath 2.0)

Rep una URI (xs:string) i retorna cert (xs:boolean) si el document existeix.

fn:doc(input?) (XPath 2.0)

Rep una URI (xs:string) i retorna el document (document-node()).

fn:document-uri(input?) (XPath 2.0)

Rep un paràmetre de tipus node() i retorna una URI (xs:anyURI) corresponent al valor de la propietat document-uri del paràmetre.

fn:empty(input*) (XPath 2.0)

Rep una seqüència (item()) i retorna cert (xs:boolean) si està buida.

fn:encode-for-uri(input) (XPath 2.0)

Rep una cadena (xs:string) i retorna una cadena (xs:string) codificada segons l'especificació de les URI (RFC 3986).

fn:ends-with(input?, pattern?, collation?) (XPath 2.0)

Rep dos paràmetres de tipus cadena (xs:string) i retorna cert o fals (xs:boolean) en funció de si el segon paràmetre existeix al final del primer.

Opcionalment rep un tercer paràmetre de tipus cadena (xs:string) que defineix les pautes de confrontació.

fn:error(input, description?) (XPath 2.0)

Rep el tipus d'error (xs:QName), opcionalment una descripció (xs:string) i retorna l'error al parser.

fn:escape-html-uri(input) (XPath 2.0)

Rep una cadena (xs:string) i retorna una cadena (xs:string) amb els caràcters non-ASCII codificats segons l'especificació de les URI (RFC 3986).

fn:exactly-one(input) (XPath 2.0)

Rep una seqüència (item()) i retorna una seqüència (item()) si i només si conté un ítem. Sinó, dóna error.

fn:exists(input*) (XPath 2.0)

Rep una seqüència (item()) i retorna cert (xs:boolean) si està plena.

fn:false() (XPath 1.0+)

Retorna fals (xs:boolean).

fn:floor(input) (XPath 1.0+)

Rep un paràmetre de tipus numèric (xs:integer, xs:float, xs:double o xs:decimal) i retorna l'enter més proper a la baixa.

fn:hours-from-dateTime(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:dateTime) i retorna un enter (xs:integer) entre 0 i 23 com a valor de les hores de la data.

fn:hours-from-duration(input?) (XPath 2.0)

Rep un paràmetre de tipus període (xs:duration) i retorna un enter (xs:integer) com a valor de les hores del període.

fn:hours-from-time(input?) (XPath 2.0)

Rep un paràmetre de tipus hora (xs:time) i retorna un enter (xs:integer) entre 0 i 23 com a valor de les hores de l'hora.

fn:id(input*, context?) (XPath 1.0+)

Rep una seqüència (xs:string) i retorna els elements (element()) que tenen un ID coincident amb el primer paràmetre.

Opcionalment pot rebre un segon paràmetre de tipus node() que és el context.

fn:idref(input*, context?) (XPath 2.0)

Rep una seqüència (xs:string) i retorna els elements (node()) que tenen un IDREF coincident amb el primer paràmetre.

Opcionalment pot rebre un segon paràmetre de tipus node() que és el context.

fn:implicit-timezone() (XPath 2.0)

Retorna el fus horari (xs:dayTimeDuration) actual.

fn:in-scope-prefixes(input) (XPath 2.0)

Rep un paràmetre de tipus node() i retorna una seqüència (xs:string) amb els prefixos del context.

fn:index-of(input*, term, collation?) (XPath 2.0)

Rep una seqüència (xs:anyAtomicType) com a primer paràmetre, un terme a cercar (xs:anyAtomicType) com a segon paràmetre i retorna una seqüència (xs:integer) dels índex de les coincidències.

El tercer paràmetre és una cadena (xs:string) que proporciona, de forma opcional, unes pautes de confrontació específiques.

fn:insert-before(input*, position, item*) (XPath 2.0)

Rep una seqüència (item()), una posició (xs:integer) i una seqüència (item()) i retorna una seqüència (item()) inserint el tercer paràmetre abans de l'ítem en la posició especificada pel segon.

fn:iri-to-uri(input) (XPath 2.0)

Rep una cadena (xs:string) codificada segons l'especificació de les IRI (RFC 3987) i retorna una cadena (xs:string) codificada segons l'especificació de les URI (RFC 3986).

fn:lang(input?, scope?) (XPath 1.0+)

Rep un primer paràmetre de tipus cadena (xs:string) vàlid segons la ISO 639 i retorna cert o fals (xs:boolean) en funció de l'idioma del context.

Opcionalment rep un segon paràmetre de tipus node(), que defineix el context. Aquest paràmetre existeix des de XPath 2.0.

fn:last() (XPath 1.0+)

Retorna la posició (xs:integer) del darrer element del context dins la seqüència d'ítems que s'estan processant.

fn:local-name-from-QName(input?) (XPath 2.0)

Rep un nom qualificat (xs:QName) i retorna el seu nom local (xs:NCName).

fn:local-name(input?) (XPath 1.0+)

Rep un paràmetre de tipus node() i retorna el nom local (xs:string) del node.

fn:lower-case(input) (XPath 2.0)

Rep com a paràmetre una cadena (xs:string) i la retorna en minúscules.

fn:matches(input?, pattern, flags*) (XPath 2.0)

Rep un primer paràmetre de tipus cadena (xs:string), un segon paràmetre de tipus expressió regular (xs:string) i retorna cert o fals (xs:boolean) en funció de si hi ha coincidència.

Opcionalment rep un tercer paràmetre que pot ser s, m, i o x o una combinació d'aquests que funciona com a modificador de les regles de l'expressió regular.

fn:max(input*, collation?) (XPath 2.0)

Rep una seqüència (xs:anyAtomicType) i retorna l'ítem (xs:anyAtomicType) major.

El segon paràmetre és una cadena (xs:string) que proporciona, de forma opcional, unes pautes de confrontació específiques.

fn:min(input*, collation?) (XPath 2.0)

Rep una seqüència (xs:anyAtomicType) i retorna l'ítem (xs:anyAtomicType) menor.

El segon paràmetre és una cadena (xs:string) que proporciona, de forma opcional, unes pautes de confrontació específiques.

fn:minutes-from-dateTime(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:dateTime) i retorna un enter (xs:integer) entre 0 i 59 com a valor dels minuts de la data.

fn:minutes-from-duration(input?) (XPath 2.0)

Rep un paràmetre de tipus període (xs:duration) i retorna un enter (xs:integer) com a valor dels minuts del període.

fn:minutes-from-time(input?) (XPath 2.0)

Rep un paràmetre de tipus hora (xs:time) i retorna un enter (xs:integer) entre 0 i 59 com a valor dels minuts de l'hora.

fn:month-from-date(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:date) i retorna un enter (xs:integer) entre 0 i 12 com a valor del mes de la data.

fn:month-from-dateTime(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:dateTime) i retorna un enter (xs:integer) entre 0 i 12 com a valor del mes de la data.

fn:months-from-duration(input?) (XPath 2.0)

Rep un paràmetre de tipus període (xs:duration) i retorna un enter (xs:integer) com a valor dels mesos del període.

fn:name(input?) (XPath 1.0+)

Rep un paràmetre de tipus node() i retorna una cadena (xs:string) que és el nom del node.

fn:namespace-uri-for-prefix(input?, scope) (XPath 2.0)

Rep un prefix (xs:string) com a primer paràmetre, el context (node()) com a segon paràmetre i retorna la URI (xs:anyURI) de l'espai de noms del segon paràmetre.

fn:namespace-uri-from-QName(input?) (XPath 2.0)

Rep un nom qualificat (xs:QName) i retorna la URI (xs:anyURI) del seu espai de noms.

fn:namespace-uri(input?) (XPath 1.0+)

Rep un paràmetre de tipus node() i retorna la URI (xs:anyURI) de l'espai de noms del node.

fn:nilled(input) (XPath 2.0)

Rep un paràmetre de tipus node() i retorna un booleà (xs:boolean).

fn:node-name(input?) (XPath 2.0)

Rep un paràmetre de tipus node() i retorna el nom del node de l'argument (xs:QName)

fn:normalize-space(input?) (XPath 1.0+)

Rep com a paràmetre una cadena (xs:string) i la retorna eliminant els espais anteriors i posteriors i convertint les seqüències d'espais en un sol espai (#x20).

fn:normalize-unicode(input) (XPath 2.0)

Rep com a paràmetre una cadena (xs:string) i la retorna normalitzada segons les regles de normalització Unicode.

fn:not(input*) (XPath 1.0+)

Rep una seqüència de paràmetres de tipus item(), els redueix a un resultat booleà (xs:boolean) i retorna el seu contrari.

fn:number(input?) (XPath 1.0+)

Rep un paràmetre de qualsevol tipus (xs:anyAtomicType) i retorna un número (xs:double). Si el resultat no és transformable a un valor numèric, el resultat és NaN.

fn:one-or-more(input+) (XPath 2.0)

Rep una seqüència (item()) i retorna una seqüència (item()) si i només si conté un o més ítems. Sinó, dóna error.

fn:position() (XPath 1.0+)

Retorna la posició (xs:integer) del context dins la seqüència d'ítems que s'estan processant.

fn:prefix-from-QName(input?) (XPath 2.0)

Rep un nom qualificat (xs:QName) i retorna el seu prefix (xs:NCName).

fn:QName(nsURI?, input) (XPath 2.0)

Rep dos paràmetres de tipus cadena (xs:string) on el primer és una URI d'un espai de noms i el segon un nom local o un prefix més un nom local i retorna un nom qualificat (xs:QName) resultat d'assignar l'espai de noms al segon paràmetre.

fn:remove(input*, position) (XPath 2.0)

Rep una seqüència (item()) i una posició (xs:integer) i retorna una seqüència (item()) eliminant l'element ubicat a la posició especificada.

fn:replace(input?, pattern, replace, flags*) (XPath 2.0)

Rep un primer paràmetre de tipus cadena (xs:string), un segon i tercer paràmetre de tipus expressió regular (xs:string) i retorna una cadena (xs:string) que és conseqüència d'aplicar un reemplaçament segons el patró del tercer paràmetre segons les coincidències amb el segon paràmetre al primer paràmetre.

Opcionalment rep un quart paràmetre que pot ser s, m, i o x o una combinació d'aquests que funciona com a modificador de les regles de l'expressió regular.

fn:resolve-QName(input?, scope) (XPath 2.0)

Rep un primer paràmetre de tipus cadena (xs:string), un segon paràmetre de tipus node() i retorna un nom qualificat (xs:QName) resultat d'assignar l'espai de noms del segon paràmetre al primer.

fn:resolve-uri(input?, base?) (XPath 2.0)

Rep un primer paràmetre opcional de tipus cadena (xs:string) que conté una URI relativa i un segon paràmetre opcional de tipus cadena (xs:string) que conté una base d'URI.

Retorna una URI (xs:anyURI) resultat d'unir la base definida (a la funció o heredada) amb la part relativa.

fn:reverse(input*) (XPath 2.0)

Rep una seqüència (item()) i retorna una seqüència (item()) amb l'ordre dels items invertit.

fn:root(input?) (XPath 2.0)

Rep un paràmetre de tipus node() i retorna el node() arrel.

fn:round-half-to-even(input, precision?) (XPath 2.0)

Rep un primer paràmetre de tipus numèric (xs:integer, xs:float, xs:double o xs:decimal) i retorna el nombre més proper. Opcionalment pot rebre un segon paràmetre de tipus xs:integer que indica la precisió.

En el cas que els dos enters més propers siguin equidistants, optarà pel parell.

fn:round(input) (XPath 1.0+)

Rep un paràmetre de tipus numèric (xs:integer, xs:float, xs:double o xs:decimal) i retorna l'enter més proper.

fn:seconds-from-dateTime(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:dateTime) i retorna un nombre decimal (xs:decimal) entre 0 i 60 com a valor dels segons de la data.

fn:seconds-from-duration(input?) (XPath 2.0)

Rep un paràmetre de tipus període (xs:duration) i retorna un nombre decimal (xs:decimal) com a valor dels segons del període.

fn:seconds-from-time(input?) (XPath 2.0)

Rep un paràmetre de tipus hora (xs:time) i retorna un nombre decimal (xs:decimal) entre 0 i 60 com a valor dels segons de l'hora.

fn:starts-with(input?, pattern?, collation?) (XPath 1.0+)

Rep dos paràmetres de tipus cadena (xs:string) i retorna cert o fals (xs:boolean) en funció de si el segon paràmetre existeix al principi del primer.

Opcionalment rep un tercer paràmetre de tipus cadena (xs:string) que defineix les pautes de confrontació. Aquest darrer paràmetre existeix des de XPath 2.0

fn:static-base-uri() (XPath 2.0)

Retorna la URI (xs:anyURI) base del context.

fn:string-join((input*), separator) (XPath 2.0)

Rep com a primer paràmetre una seqüència de cadenes (xs:string) i com a segon paràmetre una cadena (xs:string) que a mode de separador a l'unir les cadenes de la seqüència.

fn:string-length(input?) (XPath 1.0+)

Rep com a paràmetre una cadena (xs:string) i retorna la seva longitud (xs:integer)

fn:string-to-codepoints(input) (XPath 2.0)

Rep una cadena (xs:string) i retorna una seqüència d'enters (xs:integer).

fn:string(input?) (XPath 1.0+)

Rep un paràmetre de tipus item() i retorna una cadena (xs:string).

fn:subsequence(input*, position, length?) (XPath 2.0)

Rep una seqüència (item()), una posició (xs:double) i una longitud (xs:double) i retorna una seqüència (item()) amb el número d'ítems especificats al tercer paràmetre, des de la posició especificada al segon.

fn:substring-after(input?, pattern?, collation?) (XPath 1.0+)

Rep dos paràmetres de tipus cadena (xs:string) i retorna una cadena (xs:string) resultant d'extreure el fragment del primer paràmetre posterior al segon paràmetre.

Opcionalment rep un tercer paràmetre de tipus cadena (xs:string) que defineix les pautes de confrontació. Aquest darrer paràmetre existeix des de XPath 2.0

fn:substring-before(input?, pattern?, collation?) (XPath 1.0+)

Rep dos paràmetres de tipus cadena (xs:string) i retorna una cadena (xs:string) resultant d'extreure el fragment del primer paràmetre anterior al segon paràmetre.

Opcionalment rep un tercer paràmetre de tipus cadena (xs:string) que defineix les pautes de confrontació. Aquest darrer paràmetre existeix des de XPath 2.0.

fn:substring(input, start, length?) (XPath 1.0+)

Rep com a primer paràmetre una cadena (xs:string) i com a segon paràmetre un enter (xs:double).

Retorna una cadena (xs:string) compresa entre el caràcter d'inici, que marca el segon paràmetre, i el final de la cadena d'entrada.

Opcionalment es pot definir un tercer paràmetre, enter (xs:double), que defineix el número de caràcters de sortida.

fn:sum(input*, zero?) (XPath 1.0+)

Rep una seqüència (xs:anyAtomicType) i retorna la suma (xs:anyAtomicType) dels ítems.

El segon paràmetre especifica un valor opcional per quan rep una seqüència buida. Si no s'especifica, el valor nul per defecte és 0.

fn:timezone-from-date(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:date) i retorna un període (xs:dayTimeDuration) entre +14:00 i -14:00 hores com a valor del fus horari de la data.

fn:timezone-from-dateTime(input?) (XPath 2.0)

Rep un paràmetre de tipus data (xs:dateTime) i retorna un període (xs:dayTimeDuration) entre +14:00 i -14:00 hores com a valor del fus horari de la data.

fn:timezone-from-time(input?) (XPath 2.0)

Rep un paràmetre de tipus hora (xs:time) i retorna un període (xs:dayTimeDuration) entre +14:00 i -14:00 hores com a valor del fus horari de l'hora.

fn:tokenize(input?, pattern, flags*) (XPath 2.0)

Rep un primer paràmetre de tipus cadena (xs:string), un segon paràmetre de tipus expressió regular (xs:string) i retorna una seqüència de cadenes (xs:string) conseqüència de fragmentar el primer paràmetre en funció del patró del segon.

Opcionalment rep un tercer paràmetre que pot ser s, m, i o x o una combinació d'aquests que funciona com a modificador de les regles de l'expressió regular.

fn:trace(item*, label) (XPath 2.0)

Rep una seqüència (item()), una etiqueta (xs:string) i retorna al parser una traça del que va fent.

fn:translate(input?, map, translation-map) (XPath 1.0+)

Rep tres paràmetres de tipus cadena (xs:string) retornant una cadena (xs:string) on s'ha substituït cada caràcter del primer paràmetre, existent en el segon paràmetre pel seu homòlog en posició del tercer paràmetre.

fn:true() (XPath 1.0+)

Retorna cert (xs:boolean).

fn:unordered(input*) (XPath 2.0)

Rep una seqüència (item()) i retorna una seqüència (item()) en l'ordre que millor vagi al parser (en realitat fas explícit que l'ordre no importa).

fn:upper-case(input) (XPath 2.0)

Rep com a paràmetre una cadena (xs:string) i la retorna en majúscules.

fn:year-from-date(input?) (XPath 2.0)

Rep un primer paràmetre de tipus data (xs:date) i retorna un enter (xs:integer) com a valor de l'any de la data.

fn:year-from-dateTime(input?) (XPath 2.0)

Rep un primer paràmetre de tipus data (xs:dateTime) i retorna un enter (xs:integer) com a valor de l'any de la data.

fn:years-from-duration(input?) (XPath 2.0)

Rep un primer paràmetre de tipus període (xs:duration) i retorna un enter (xs:integer) com a valor dels anys del període.

fn:zero-or-one(input?) (XPath 2.0)

Rep una seqüència (item()) i retorna una seqüència (item()) si i només si conté zero o un ítems. Sinó, dóna error.