Estoy usando XSLT para transformar un XML en un archivo html / php. En este XSLT, reemplazo algunas tags por código php y ahora tengo que pasar los valores de los atributos a ese código php. Mi problema ahora es que tengo que escapar de comillas simples con una barra invertida para que funcione. ¿Es esto posible con XSLT?
Ejemplo:
$this->doSomething('');
Si ahora tuviera una plantilla:
Esto generaría:
doSomething('test'xyz');?>
Lo que ahora quiero lograr es lo siguiente:
doSomething('test\'xyz');?>
Así que quiero reemplazar todas las comillas simples por \ ‘
Use una plantilla recursiva para hacer la búsqueda / reemplazo:
Aplicado a tu ejemplo:
$this->doSomething(' ');
Nota:
para definir explícitamente el texto destinado a la salida, y no tener que preocuparse por el espacio en blanco entre ese texto y las llamadas a la plantilla. '
para la comilla simple (también conocida como apóstrofo) ¿Por qué no usa la función de reemplazo XSLT 2.0 estándar? O el XSLT 1.0 reemplaza la implementación xslt 1.0 cadena reemplaza la función
Para una solución XSLT 1.0, escriba su propia solución recursiva, o puede usar la plantilla str-map
FXSL :
' \
Cuando se aplica en el documento XML proporcionado :
el resultado deseado y correcto se produce :
test\'xyz
Solo usa:
$string = str_replace( "'", "\\'", $string );