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

replace

XPath

 

La función fn:replace se utiliza para sustituir partes de una cadena mediante una expresión regular. La cadena de entrada se introduce en el primer argumento, en el segundo se introducirá la expresión regular y en el tercer argumento la cadena con la que se reemplazarán las partes de la cadena en cuestión.

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 cuarto 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.

Una secuencia vacía devolverá en el resultado una secuencia vacía. No se permitirá una secuencia vacía en el argumento para la expresión regular. A menudo se introduce una secuencia vacía en el tercer argumento. De esta manera se eliminarán las partes de la cadena correspondientes.

La expresión regular no tiene que consistir necesariamente en una parte de la cadena a reemplazar. Es posible introducir condiciones de comparación complejas que permitan reemplazar varios segmentos de una cadena. Por ejemplo: "(subcadena1|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.

 

Argumentos

Cadena, cuyas subcadenas se desea reemplazar

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

Tipo: xs:string

 

Expresión regular que filtrará las subcadenas

Obligatorio

Tipo: xs:string

 

Cadena de sustitución que reemplazará a las subcadenas

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

Tipo: xs:string

 

Carácter para definir el modo

Opcional

Tipo: xs:string

 

Valor de salida

Cadena compuesta por la cadena de entrada y la cadena de reemplazo

Tipo: xs:string

 

 

Ejemplo

replace('DATEN2type', 'daten', 'data')

Resultado: DATEN2type

Se diferencia entre mayúsculas y minúsculas por defecto.

 

 

Ejemplo

replace('DATEN2type', 'daten', 'data', 'i')

Resultado: data2type

Con el flag 'i' no se diferenciará entre mayúsculas y minúsculas.

 

 

Ejemplo

replace('datas2type', 's', '')

Resultado: data2type

 

 

Ejemplo

replace('', 'hola', 'hola mundo')

Resultado:

 

 

Ejemplo

replace('', '', 'hola mundo', 'i')

 

Resultado: Aviso de error: The regular expression in replace() must not be one that matches a zero-length string; URL: www.w3.org/TR/2005/WD-xpath-functions-20050211/

 

 

Ejemplo

replace('taaaaat', '(ta)|(at)', 'x')

Ergebnis: xaaax

 

 

Ejemplo

replace('data2type', 'ta?', 'x')

Resultado: dax2xype

Todas las subcadenas compuestas por 'ta' o por 't', se sustituirán por 'x'.

 

 

Ejemplo

replace('data2type', 't.', 'x')

Resultado: dax2xpe

Se debe tener en cuenta el punto detras de la 't' en la expresión regular. Esto significa que cada subcadena que comience por 't' y esté seguida de cualquier carácter será reemplazada.

 

 

Ejemplo

replace('dataa2type', 'a+', 'x')

Resultado: dxtx2type

 

 

Ejemplo

replace('dataa2type', 'd.*', 'xml')

Resultado: xml

La expresión regular coincide con una subcadena que empieza por 'd' y es seguida por un número indefinido de caracteres. Puesto que la cadena empieza por 'd', la expresión regular coincide con la cadena de entrada completa.

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