XSLT 2.0, XPath 2.0, y XQuery 1.0, comparten la misma biblioteca de funciones.
funciones de referencia
El prefijo predeterminado para el espacio de nombres es la función fn:
El URI del espacio de nombres de función es: http://www.w3.org/2005/xpath-functions
Tip: Las funciones se llaman a menudo con el fn: prefijo, como fn: string() . Sin embargo, desde fn: es el prefijo predeterminado del espacio de nombres, los nombres de las funciones no necesitan ser prefijado cuando se le llama.
funciones de acceso
Nombre | Descripción |
---|---|
fn:node- name( node ) | Devuelve el nombre-nodo del nodo argumento |
fn: nilled( node ) | Devuelve un valor booleano que indica si el nodo argumento se nilled |
fn: data( item.item,... ) | Toma una secuencia de elementos y devuelve una secuencia de valores atómicos |
fn:base- uri() fn:base- uri( node ) | Devuelve el valor de la propiedad de la base-URI del nodo actual o especificado |
fn:document- uri( node ) | Devuelve el valor de la propiedad-documento URI para el nodo especificado |
De error y de traza Funciones
Nombre | Descripción |
---|---|
fn: error() fn: error( error ) fn: error( error,description ) fn: error( error,description,error-object ) | Ejemplo: error(fn:QName('http://example.com/test', 'err:toohigh') , 'Error: El precio es demasiado alto') Resultados: Las devoluciones http://example.com/test#toohigh y la cadena "Error: Price is too high" para el medio ambiente de procesamiento externo |
fn: trace( value,label ) | Se utiliza para consultas de depuración |
Funciones en valores numéricos
Nombre | Descripción |
---|---|
fn: number( arg ) | Devuelve el valor numérico del argumento. El argumento podría ser un valor booleano, cadena o conjunto de nodos Ejemplo: number('100') |
fn: abs( num ) | Devuelve el valor absoluto del argumento Ejemplo: abs(3.14) Ejemplo: abs(-3.14) |
fn: ceiling( num ) | Devuelve el número entero más pequeño que es mayor que el número argumento Ejemplo: ceiling(3.14) |
fn: floor( num ) | Devuelve el entero más grande que no es mayor que el número argumento Ejemplo: floor(3.14) |
fn: round( num ) | Redondea el argumento número al entero más cercano Ejemplo: round(3.14) |
fn:round-half-to- even() | Ejemplo: round-medio-a- even(0.5) Resultado: 0 Ejemplo: round-medio-a- even(1.5) Ejemplo: round-medio-a- even(2.5) |
Funciones en Strings
Nombre | Descripción |
---|---|
fn: string( arg ) | Devuelve el valor de cadena del argumento. El argumento podría ser un número, boolean, o conjunto de nodos Ejemplo: string(314) |
fn:codepoints-to- string(( int,int,... ) ) | Crea una cadena de una secuencia de los puntos de código Unicode Standard Ejemplo: puntos de código-a- string((84, 104, 233, 114, 232, 115, 101) ) |
fn:string-to- codepoints( string ) | Devuelve la secuencia de los puntos de código Unicode estándar desde una cadena Ejemplo: cuerdas a- codepoints("Th r se") |
fn:codepoint- equal( comp1,comp2 ) | Devuelve verdadero si el valor de COMP1 es igual al valor de comp2, de acuerdo con el punto de colación código Unicode (http://www.w3.org/2005/02/xpath-functions/collation/codepoint) , de lo contrario retorna falso |
fn: compare( comp1,comp2 ) fn: compare( comp1,comp2,collation ) | Devuelve -1 si comp1 es menor que comp2, 0 si comp1 es igual a comp2, o 1 si comp1 es mayor que comp2 (de acuerdo con las reglas de la intercalación que se utiliza) Ejemplo: compare('ghi', 'ghi') |
fn: concat( string,string,... ) | Devuelve la concatenación de las cadenas Ejemplo: concat('XPath ','is ','FUN!') |
fn:string- join( (string,string,...) ,sep) | Devuelve una cadena creada mediante la concatenación de los argumentos de cadena y con el argumento sep como separador Ejemplo: String- join(('We', 'are', 'having', 'fun!') , ' ') Ejemplo: String- join(('We', 'are', 'having', 'fun!') ) Ejemplo: String join(() , 'SEP') |
fn: substring( string,start,len ) fn: substring( string,start ) | Devuelve la subcadena desde la posición inicial a la longitud especificada. Índice del primer carácter es 1. Si se omite la longitud devuelve la subcadena desde la posición inicial hasta el final Ejemplo: substring('Beatles',1,4) Ejemplo: substring('Beatles',2) |
fn:string- length( string ) fn:string- length() | Devuelve la longitud de la cadena especificada. Si no hay un argumento de cadena que devuelve la longitud de la cadena de valor del nodo actual Ejemplo: String length('Beatles') |
fn:normalize- space( string ) fn:normalize- space() | Elimina espacios iniciales y finales de la cadena especificada, y sustituye todas las secuencias internas de espacio en blanco con una y devuelve el resultado. Si no hay un argumento de cadena que hace lo mismo en el nodo actual Ejemplo: normalizan space(' The XML ') |
fn:normalize- unicode() | |
fn:upper- case( string ) | Convierte el argumento de cadena a mayúsculas Ejemplo: mayúsculas case('The XML') |
fn:lower- case( string ) | Convierte el argumento de cadena a minúsculas Ejemplo: lower- case('The XML') |
fn: translate( string1,string2,string3 ) | Convierte cadena1 mediante la sustitución de los caracteres en string2 con los personajes de string3 Ejemplo: translate('12:30','30','45') Ejemplo: translate('12:30','03','54') Ejemplo: translate('12:30','0123','abcd') |
fn:escape- uri( stringURI,esc-res ) | Ejemplo: Escape- uri("http://example.com/test#car", true() ) Resultado: "http%3A%2F%2Fexample.com%2Ftest#car" Ejemplo: Escape- uri("http://example.com/test#car", false() ) Ejemplo: escapar-uri ("http://example.com/~b b ", false() ) |
fn: contains( string1,string2 ) | Devuelve verdadero si cadena1 cadena2 contiene, de lo contrario devuelve false Ejemplo: contains('XML','XM') |
fn:starts- with( string1,string2 ) | Devuelve verdadero si cadena1 comienza con string2, de lo contrario devuelve false Ejemplo: starts- with('XML','X') |
fn:ends- with( string1,string2 ) | Devuelve verdadero si cadena1 termina con string2, de lo contrario devuelve false Ejemplo: ends- with('XML','X') |
fn:substring- before( string1,string2 ) | Devuelve el inicio de cadena1 cadena2 antes de que ocurra en ella Ejemplo: substring- before('12/10','/') |
fn:substring- after( string1,string2 ) | Devuelve el resto de cadena1 cadena2 después se produce en ella Ejemplo: substring- after('12/10','/') |
fn: matches( string,pattern ) | Devuelve true si el argumento cadena coincide con el patrón, de lo contrario, devuelve falso Ejemplo: matches("Merano", "ran") |
fn: replace( string,pattern,replace ) | Devuelve una cadena que se crea mediante la sustitución del patrón dado con el argumento de reemplazar Ejemplo: replace("Bella Italia", "l" , "*") Ejemplo: replace("Bella Italia", "l" , "") |
fn: tokenize( string,pattern ) | Ejemplo: tokenize("XPath is fun", "\s+") Resultado: ("XPath", "is" , "fun") |
Funciones para anyURI
Nombre | Descripción |
---|---|
fn:resolve- uri( relative,base ) |
Funciones en valores booleanos
Nombre | Descripción |
---|---|
fn: boolean( arg ) | Devuelve un valor booleano para un número, una cadena o conjunto de nodos |
fn: not( arg ) | El argumento se reduce primero a un valor booleano mediante la aplicación de la boolean() función. Devuelve VERDADERO si el valor booleano es falso, y falso si el valor booleano es verdadero Ejemplo: not(true() ) |
fn: true() | Devuelve el valor booleano verdadero Ejemplo: true() |
fn: false() | Devuelve el valor booleano falso Ejemplo: false() |
Funciones en duraciones, fechas y horas
Funciones de extracción de componentes en duraciones, fechas y horas
Nombre | Descripción |
---|---|
fn: dateTime( date,time ) | Convierte los argumentos a una fecha y una hora |
fn:years-from- duration( datetimedur ) | Devuelve un entero que representa el componente de años en la representación léxica canónica del valor del argumento |
fn:months-from- duration( datetimedur ) | Devuelve un entero que representa el componente meses en la representación léxica canónica del valor del argumento |
fn:days-from- duration( datetimedur ) | Devuelve un entero que representa el componente días en la representación léxica canónica del valor del argumento |
fn:hours-from- duration( datetimedur ) | Devuelve un entero que representa el componente de horas en la representación léxica canónica del valor del argumento |
fn:minutes-from- duration( datetimedur ) | Devuelve un entero que representa el componente de minutos en la representación léxica canónica del valor del argumento |
fn:seconds-from- duration( datetimedur ) | Devuelve un número decimal que representa el componente de segundos en la representación léxica canónica del valor del argumento |
fn:year-from- dateTime( datetime ) | Devuelve un entero que representa el componente de ejercicio en el valor del argumento localizada Ejemplo: años de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:month-from- dateTime( datetime ) | Devuelve un entero que representa el componente meses en el valor localizado del argumento Ejemplo: mes-de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:day-from- dateTime( datetime ) | Devuelve un entero que representa el componente de días en el valor localizada del argumento Ejemplo: día-de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:hours-from- dateTime( datetime ) | Devuelve un entero que representa el componente de hora en el valor localizada del argumento Ejemplo: hora-de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:minutes-from- dateTime( datetime ) | Devuelve un entero que representa el componente de minutos en el valor localizada del argumento Ejemplo: minutos-de- dateTime(xs:dateTime("2005-01-10T12:30-04:10") ) |
fn:seconds-from- dateTime( datetime ) | Devuelve un número decimal que representa el componente de segundos en el valor localizado del argumento Ejemplo: segundo-de- dateTime(xs:dateTime("2005-01-10T12:30:00-04:10") ) |
fn:timezone-from- dateTime( datetime ) | Devuelve el componente de zona horaria de la discusión si los hay |
fn:year-from- date( date ) | Devuelve un entero que representa el año en el valor localizado del argumento Ejemplo: años de- date(xs:date("2005-04-23") ) |
fn:month-from- date( date ) | Devuelve un entero que representa el mes en el valor localizado del argumento Ejemplo: el mes-de- date(xs:date("2005-04-23") ) |
fn:day-from- date( date ) | Devuelve un entero que representa el día en el valor localizada del argumento Ejemplo: día-de- date(xs:date("2005-04-23") ) |
fn:timezone-from- date( date ) | Devuelve el componente de zona horaria de la discusión si los hay |
fn:hours-from- time( time ) | Devuelve un entero que representa el componente de hora en el valor localizada del argumento Ejemplo: hora-de- time(xs:time("10:22:00") ) |
fn:minutes-from- time( time ) | Devuelve un entero que representa el componente de minutos en el valor localizada del argumento Ejemplo: minutos-de- time(xs:time("10:22:00") ) |
fn:seconds-from- time( time ) | Devuelve un entero que representa el componente de segundo en el valor localizada del argumento Ejemplo: segundo-de- time(xs:time("10:22:00") ) |
fn:timezone-from- time( time ) | Devuelve el componente de zona horaria de la discusión si los hay |
fn:adjust-dateTime-to- timezone( datetime,timezone ) | Si el argumento zona horaria está vacía, devuelve una fecha y hora sin una zona horaria. De lo contrario, devuelve una fecha y hora con una zona horaria |
fn:adjust-date-to- timezone( date ,timezone ) | Si el argumento zona horaria está vacía, devuelve una fecha sin una zona horaria. De lo contrario, devuelve una cita con una zona horaria |
fn:adjust-time-to- timezone( time ,timezone ) | Si el argumento zona horaria está vacía, se devuelve un tiempo sin una zona horaria. De lo contrario, se devuelve una vez con una zona horaria |
Funciones relacionadas con QNames
Nombre | Descripción |
---|---|
fn: QName() | |
fn:local-name-from- QName() | |
fn:namespace-uri-from- QName() | |
fn:namespace-uri-for- prefix() | |
fn:in-scope- prefixes() | |
fn:resolve- QName() |
Funciones en nodos
Nombre | Descripción |
---|---|
fn: name() fn: name( nodeset ) | Devuelve el nombre del nodo actual o el primer nodo en el conjunto de nodos especificada |
fn:local- name() fn:local- name( nodeset ) | Devuelve el nombre del nodo actual o el primer nodo en el conjunto de nodos especificada - sin el prefijo de espacio de nombres |
fn:namespace- uri() fn:namespace- uri( nodeset ) | Devuelve el URI de espacio del nodo actual o el primer nodo en el conjunto de nodos especificada |
fn: lang( lang ) | Devuelve true si el idioma del nodo actual coincide con el idioma del idioma especificado Ejemplo: Lang("en") es cierto para Ejemplo: Lang("de") es falsa para |
fn: root() fn: root( node ) | Devuelve la raíz del árbol al que pertenece el nodo actual o la especificada. Esto suele ser un nodo de documento |
Funciones en Secuencias
Funciones generales sobre Secuencias
Nombre | Descripción |
---|---|
fn:index- of( (item,item,...) ,searchitem) | Devuelve las posiciones dentro de la secuencia de elementos que son iguales al argumento searchitem Ejemplo: index-de ((15, 40, 25, 40, 10) , 40) Ejemplo: index-de (("a", "dog" , "and" , "a" , "duck") , "a") Ejemplo: index-de ((15, 40, 25, 40, 10) , 18) |
fn: remove( (item,item,...) ,position) | Devuelve una nueva secuencia construida a partir del valor de los argumentos del artículo - con el elemento especificado por el argumento de posición eliminado Ejemplo: remove(("ab", "cd" , "ef") , 0) Ejemplo: remove(("ab", "cd" , "ef") , 1) Ejemplo: remove(("ab", "cd" , "ef") , 4) |
fn: empty( item,item,... ) | Devuelve verdadero si el valor de los argumentos es una secuencia vacía, de lo contrario devuelve false Ejemplo: empty(remove(("ab", "cd") , 1)) |
fn: exists( item,item,... ) | Devuelve verdadero si el valor de los argumentos no es una secuencia vacía, de lo contrario devuelve false Ejemplo: exists(remove(("ab") , 1)) |
fn:distinct- values( (item,item,...) ,collation) | Devuelve única distintos (different) los valores Ejemplo: distinct- values((1, 2, 3, 1, 2) ) |
fn:insert- before( (item,item,...) ,pos,inserts) | Devuelve una nueva secuencia construida a partir del valor de los argumentos del artículo - con el valor del argumento insertos insertado en la posición especificada por el argumento pos Ejemplo: Insertar before(("ab", "cd") , 0, "gh") Ejemplo: Insertar before(("ab", "cd") , 1, "gh") Ejemplo: Insertar before(("ab", "cd") , 2, "gh") Ejemplo: Insertar before(("ab", "cd") , 5, "gh") |
fn: reverse( (item,item,...) ) | Devuelve el orden inverso de los elementos especificados Ejemplo: reverse(("ab", "cd" , "ef") ) Ejemplo: reverse(("ab") ) |
fn: subsequence( (item,item,...) ,start,len) | Devuelve una secuencia de elementos desde la posición especificada por el argumento de inicio y continuando por el número de elementos especificados por el argumento len. El primer elemento se encuentra en la posición 1 Ejemplo: subsequence(($item1, $item2, $item3,...) , 3) Ejemplo: subsequence(($item1, $item2, $item3, ...) , 2, 2) |
fn: unordered( (item,item,...) ) | Devuelve los elementos en un orden depende de la implementación |
Funciones que prueban la cardinalidad de Secuencias
Nombre | Descripción |
---|---|
fn:zero-or- one( item,item,... ) | Devuelve el argumento si contiene cero o artículos de uno, de lo contrario se genera un error |
fn:one-or- more( item,item,... ) | Devuelve el argumento si contiene uno o más elementos, de lo contrario se genera un error |
fn:exactly- one( item,item,... ) | Devuelve el argumento si contiene exactamente un artículo, de lo contrario se genera un error |
Es igual, unión, intersección y Salvo
Nombre | Descripción |
---|---|
fn:deep- equal( param1,param2,collation ) | Devuelve verdadero si param1 y param2 son profundamente iguales entre sí, de lo contrario devuelve false |
Funciones agregadas
Nombre | Descripción |
---|---|
fn: count( (item,item,...) ) | Devuelve el recuento de nodos |
fn: avg( (arg,arg,...) ) | Devuelve el promedio de los valores de los argumentos Ejemplo: avg((1,2,3) ) |
fn: max( (arg,arg,...) ) | Devuelve el argumento de que es más grande que las demás Ejemplo: max((1,2,3) ) Ejemplo: max(('a', 'k') ) |
fn: min( (arg,arg,...) ) | Devuelve el argumento de que es menos que los demás Ejemplo: min((1,2,3) ) Ejemplo: min(('a', 'k') ) |
fn: sum( arg,arg,... ) | Devuelve la suma del valor numérico de cada nodo en el conjunto de nodos especificada |
Funciones que generan secuencias
Nombre | Descripción |
---|---|
fn: id( (string,string,...) ,node) | Devuelve una secuencia de nodos de elementos que tienen un valor de ID igual al valor de uno o más de los valores especificados en el argumento de cadena |
fn: idref( (string,string,...) ,node) | Devuelve una secuencia de elemento o atributo nodos que tienen un valor IDREF igual al valor de uno o más de los valores especificados en el argumento de cadena |
fn: doc( URI ) | |
fn:doc- available( URI ) | Devuelve true si el doc() devuelve un nodo de documento, de lo contrario devuelve false |
fn: collection() fn: collection( string ) |
Funciones de contexto
Nombre | Descripción |
---|---|
fn: position() | Devuelve la posición de índice del nodo que se está procesando actualmente Ejemplo: // libro [ position() <= 3] |
fn: last() | Devuelve el número de elementos en la lista de nodos procesados Ejemplo: // libro [ last() ] |
fn:current- dateTime() | Devuelve la fecha y hora actuales (with timezone) |
fn:current- date() | Devuelve la fecha actual (with timezone) |
fn:current- time() | Devuelve la hora actual (with timezone) |
fn:implicit- timezone() | Devuelve el valor de la zona horaria implícita |
fn:default- collation() | Devuelve el valor de la colación por defecto |
fn:static-base- uri() | Devuelve el valor de la base-uri |
Funciones XSLT
Además, existen las siguientes funciones integradas de XSLT:
Nombre | Descripción |
---|---|
current() | Devuelve el nodo actual |
document() | Se utiliza para acceder a los nodos de un documento XML externo |
element- available() | Comprueba si el elemento especificado es soportado por el procesador XSLT |
format- number() | Convierte un número en una cadena |
function- available() | Comprueba si la función especificada está soportado por el procesador XSLT |
generate- id() | Devuelve un valor de cadena que identifica de forma exclusiva un nodo especificado |
key() | Devuelve un conjunto de nodos usando el índice especificado por un <xsl:key> elemento |
system- property() | Devuelve el valor de las propiedades del sistema |
unparsed-entity- uri() | Devuelve el URI de una entidad no analizada |