XSLT: reemplaza las comillas simples por \ ‘

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:

  1. El uso de 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.
  2. El uso de comillas simples para encerrar la instrucción de selección para el reemplazo y con los parámetros, con el fin de utilizar comillas dobles para indicar un enunciado de texto que contiene una comilla simple
  3. El uso de la entidad referencia ' 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 );