Funciones XSLT y XPath

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

tokenize

XPath

 

La función fn:tokenize separa la cadena de entrada mediante separadores definidos en el segundo argumento por una expresión regular. La expresión regular consistirá en su forma más simple en un espacio en blanco o en una combinación de caracteres. Aquí no se podrán utilizar signos tales como .\?*+|^${}()[].

Si se reconocen distintos separadores en la cadena de entrada, la función devolverá una secuencia de subcadenas comprendidas entre los separadores. Los separadores no se devolverán como parte de la secuencia o de la subcadena. Si no hay carácteres entre dos separadores, se devolverá una cadena sin caracteres en la secuencia de salida. Si la cadena de entrada empieza o termina con un separador, se devolverá en la secuencia de salida una cadena sin caracteres al principio o al final respectivamente.

La expresión regular que sirva como separador no tiene que consistir necesariamente en una cadena. Es posible utilizar condiciones de comparación mucho más complejas. Por ejemplo, se pueden indicar varias cadenas como separadores: "(subcadena1|subcadena2)". Aquí se tendrá en cuenta en primer lugar la subcadena1, y después la subcadena2. Además es posible mediante claves obtener más variaciones:

  • El punto (.) representa cualquier carácter.
  • Una expresión será válida con o sin el carácter que antecede al signo de interrogación (?).
  • Un signo más (+) hará que se reconozca el carácter que lo antecece tanto si aparece una o repetidas veces.
  • Con asterisco (*) se mostrará la expresión si el carácter aparece una vez, ninguna, o en repetidas ocasiones.
  • Una clave importante es además /s, que representa cualquier espacio en blanco.

En la comparación entre la cadena de entrada y la expresión regular se diferenciará por defecto entre mayúsculas y minúsculas. No obstante, se ignorarán los saltos de línea. En el tercer argumento se podrá establecer el modo mediante un flag. Por ejemplo, 'i' para no diferenciar entre mayúsculas y minúsculas, 'm' para tener en cuenta los saltos de línea, o 'x' para tener en cuenta los espacios en blanco en la expresión regular.

 

Argumentos

Cadena de entrada a separar en subcadenas.

Es obligatorio, pero puede ser una secuencia vacía.

Tipo: xs:string

 

Expresión regular como separación entre las subcadenas en la cadena de entrada

Obligatorio

Tipo: xs:string

 

Flag para determinar el modo

Opcional

Tipo: xs:string

 

Valor de salida

Secuencia de subcadenas

Tipo: item()

 

 

Ejemplo

tokenize((), '2')

Resultado: ()

 

 

Ejemplo

tokenize('data2type', 'u')

Resultado: (data2type)

 

 

Ejemplo

tokenize('d a t a 2 t y p e', ' ')

Resultado: (d, a, t, a, 2, t, y, p, e)

 

 

Ejemplo

tokenize('d a t a 2 t y p e', '\s')

Resultado: (d, a, t, a, 2, t, y, p, e)

 

 

Ejemplo

tokenize('data2type', '2')

Resultado: (data, type)

  > Volver a la referencia alfabética de XSLT y XPATH