Los últimos tutoriales de desarrollo web
 

XSLT XPath y XQuery Funciones


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')
Resultado: 100

fn: abs( num ) Devuelve el valor absoluto del argumento

Ejemplo: abs(3.14)
Resultado: 3.14

Ejemplo: abs(-3.14)
Resultado: 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)
Resultado: 4

fn: floor( num ) Devuelve el entero más grande que no es mayor que el número argumento

Ejemplo: floor(3.14)
Resultado: 3

fn: round( num ) Redondea el argumento número al entero más cercano

Ejemplo: round(3.14)
Resultado: 3

fn:round-half-to- even() Ejemplo: round-medio-a- even(0.5)
Resultado: 0

Ejemplo: round-medio-a- even(1.5)
Resultado: 2

Ejemplo: round-medio-a- even(2.5)
Resultado: 2

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)
Resultado: "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) )
Resultado: 'Thérèse'

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")
Resultado: (84, 104, 233, 114, 232, 115, 101)

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')
Resultado: 0

fn: concat( string,string,... ) Devuelve la concatenación de las cadenas

Ejemplo: concat('XPath ','is ','FUN!')
Resultado: 'XPath es divertido!'

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!') , ' ')
Resultado: 'Vamos a tener diversión! '

Ejemplo: String- join(('We', 'are', 'having', 'fun!') )
Resultado: 'Wearehavingfun!'

Ejemplo: String join(() , 'SEP')
Resultado: ''

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)
Resultado: 'Beat'

Ejemplo: substring('Beatles',2)
Resultados: '' eatles

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')
Resultado: 7

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 ')
Resultado: 'El XML'

fn:normalize- unicode()
fn:upper- case( string ) Convierte el argumento de cadena a mayúsculas

Ejemplo: mayúsculas case('The XML')
Resultado: 'LA XML'

fn:lower- case( string ) Convierte el argumento de cadena a minúsculas

Ejemplo: lower- case('The XML')
Resultado: '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')
Resultado: '12: 45'

Ejemplo: translate('12:30','03','54')
Resultado: '12: 45'

Ejemplo: translate('12:30','0123','abcd')
Resultado: 'bc: da'

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() )
Resultado: "http://example.com/test#car"

Ejemplo: escapar-uri ("http://example.com/~b b ", false() )
Resultado: "http://example.com/~b%C3%A9b%C3%A9"

fn: contains( string1,string2 ) Devuelve verdadero si cadena1 cadena2 contiene, de lo contrario devuelve false

Ejemplo: contains('XML','XM')
Resultado: true

fn:starts- with( string1,string2 ) Devuelve verdadero si cadena1 comienza con string2, de lo contrario devuelve false

Ejemplo: starts- with('XML','X')
Resultado: true

fn:ends- with( string1,string2 ) Devuelve verdadero si cadena1 termina con string2, de lo contrario devuelve false

Ejemplo: ends- with('XML','X')
Resultado: falsa

fn:substring- before( string1,string2 ) Devuelve el inicio de cadena1 cadena2 antes de que ocurra en ella

Ejemplo: substring- before('12/10','/')
Resultado: '12'

fn:substring- after( string1,string2 ) Devuelve el resto de cadena1 cadena2 después se produce en ella

Ejemplo: substring- after('12/10','/')
Resultado: '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")
Resultado: true

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" , "*")
Resultado: 'Sé ** un Ita * ia'

Ejemplo: replace("Bella Italia", "l" , "")
Resultado: 'Bea Itaia'

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() )
Resultado: falsa

fn: true() Devuelve el valor booleano verdadero

Ejemplo: true()
Resultado: true

fn: false() Devuelve el valor booleano falso

Ejemplo: false()
Resultado: falsa

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") )
Resultado: 2005

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") )
Resultado: 01

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") )
Resultado: 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") )
Resultado: 12

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") )
Resultado: 30

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") )
Resultado: 0

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") )
Resultado: 2005

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") )
Resultado: 4

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") )
Resultado: 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") )
Resultado: 10

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") )
Resultado: 22

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") )
Resultado: 0

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
<P xml: lang = "es"> ... </ p>

Ejemplo: Lang("de") es falsa para
<P xml: lang = "es"> ... </ p>

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)
Resultado: (2, 4)

Ejemplo: index-de (("a", "dog" , "and" , "a" , "duck") , "a")
Resultado (1, 4)

Ejemplo: index-de ((15, 40, 25, 40, 10) , 18)
Resultado: ()

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)
Resultado: ("ab", "cd" , "ef")

Ejemplo: remove(("ab", "cd" , "ef") , 1)
Resultado: ("cd", "ef")

Ejemplo: remove(("ab", "cd" , "ef") , 4)
Resultado: ("ab", "cd" , "ef")

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))
Resultado: falsa

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))
Resultado: falsa

fn:distinct- values( (item,item,...) ,collation) Devuelve única distintos (different) los valores

Ejemplo: distinct- values((1, 2, 3, 1, 2) )
Resultado: (1, 2, 3)

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")
Resultado: ("gh", "ab" , "cd")

Ejemplo: Insertar before(("ab", "cd") , 1, "gh")
Resultado: ("gh", "ab" , "cd")

Ejemplo: Insertar before(("ab", "cd") , 2, "gh")
Resultado: ("ab", "gh" , "cd")

Ejemplo: Insertar before(("ab", "cd") , 5, "gh")
Resultado: ("ab", "cd" , "gh")

fn: reverse( (item,item,...) ) Devuelve el orden inverso de los elementos especificados

Ejemplo: reverse(("ab", "cd" , "ef") )
Resultado: ("ef", "cd" , "ab")

Ejemplo: reverse(("ab") )
Resultado: ("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)
Resultado: ($item3, ...)

Ejemplo: subsequence(($item1, $item2, $item3, ...) , 2, 2)
Resultado: ($item2, $item3)

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) )
Resultado: 2

fn: max( (arg,arg,...) ) Devuelve el argumento de que es más grande que las demás

Ejemplo: max((1,2,3) )
Resultado: 3

Ejemplo: max(('a', 'k') )
Resultado: 'k'

fn: min( (arg,arg,...) ) Devuelve el argumento de que es menos que los demás

Ejemplo: min((1,2,3) )
Resultado: 1

Ejemplo: min(('a', 'k') )
Resultado: 'a'

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]
Resultado: Selecciona los tres primeros elementos de libros

fn: last() Devuelve el número de elementos en la lista de nodos procesados

Ejemplo: // libro [ last() ]
Resultado: Selecciona el último elemento del libro

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