XSL - Renderizado xml-xsl

 
Vista:

Renderizado xml-xsl

Publicado por Ricardo (1 intervención) el 13/09/2008 01:33:59
Hola compañeros,
tengo un problema al renderizar un xml con su hoja de estilos asociada (xsl) via PHP.
En un fichero PHP tengo un bucle que va cogiendo ficheros xml y xsl y los va transformando. Yo voy capturando el render y lo pongo en una variable que luego escupo con la instruccion echo.
Mi problema estriba en que cuando me renderiza cada vuelta del bucle me pone el <!DOCTYPE ... > y yo no quiero eso, quiero el codigo html pero sin eso.
Es esto posible?

Gracias de antemano.
Ricardo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Renderizado xml-xsl

Publicado por Alejandro (227 intervenciones) el 06/07/2023 21:51:57
Hola, Ricardo.

Para eliminar la declaración `<!DOCTYPE ...>` del resultado de la transformación XSLT en PHP, puedes utilizar la función `str_replace` para eliminar esa parte del contenido antes de imprimirlo. Aquí tienes un ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Cargar el XML y la hoja de estilos XSL
$xml = new DOMDocument();
$xml->load('ruta_al_archivo.xml');
 
$xsl = new DOMDocument();
$xsl->load('ruta_al_archivo.xsl');
 
// Crear el procesador XSLT
$procesador = new XSLTProcessor();
$procesador->importStylesheet($xsl);
 
// Realizar la transformación
$resultado = $procesador->transformToXML($xml);
 
// Eliminar la declaración <!DOCTYPE ...> del resultado
$resultadoSinDoctype = str_replace('<?xml version="1.0"?>', '', $resultado);
 
// Imprimir el resultado
echo $resultadoSinDoctype;

En este código, utilizamos la función `str_replace` para buscar la cadena `<?xml version="1.0"?>` en el resultado de la transformación y reemplazarla por una cadena vacía. Esto eliminará la declaración `<!DOCTYPE ...>` del resultado antes de imprimirlo.

Espero que esto resuelva tu problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar