XSL - No me escribe el codigo HTML

 
Vista:

No me escribe el codigo HTML

Publicado por Nadal (1 intervención) el 13/10/2010 13:41:02
Hola,

Tengo un template xsl tal que así:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" />
<xsl:template match="/">
<table width="100%">
<thead>
<tr>
<th style="text-align:right" class="tituloAzulCabeceraListado">
<b> Prueba 1 </b>
</th>
<th style="text-align:right" class="tituloAzulCabeceraListado">
<b> Prueba 2 </b>
</th>
<th style="text-align:right" class="tituloAzulCabeceraListado">
<b> Prueba 3 </b>
</th>
</tr>
</thead>
<tbody class="scrollContent" style="width:100%; height:146px;">
<xsl:for-each select="//tutorial">
<tr>
<td>
<xsl:value-of select="nombre" />
</td>
<td>
<xsl:value-of select="enlace" />
</td>
<td>
<xsl:value-of select="descripcion" />
</td>
</tr>
</xsl:for-each>
</tbody>
</table>

</xsl:template>
</xsl:stylesheet>

Y lo escribo de esta manera en un jsp:

<c:import var="xslt" url="/WEB-INF/xml/book.xsl" />
<x:transform xslt="${xslt}" >
<tutoriales>
<tutorial>
<nombre>JSP 2.0</nombre>
<enlace>jspel</enlace>
<descripcion>Nuevas caracteristicas de JSPs</descripcion>
</tutorial>
<tutorial>
<nombre>Struts</nombre>
<enlace>struts</enlace>
<descripcion>Configuración del entorno Structs</descripcion>
</tutorial>
</tutoriales>
</x:transform>

Me escribe los parametros de los nodos pasados en el jsp, pero no el código HTML escrito en el template. Alguien podria decirme por qué?

Gracias y salu2
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

Generar HTML a partir de un template XSL en un JSP

Publicado por Alejandro (227 intervenciones) el 07/07/2023 00:20:19
La solución para que el código HTML definido en el template XSL se escriba correctamente en el JSP implica realizar algunos cambios en el código.

1. Asegúrate de tener los nombres de espacio y prefijos adecuados en el archivo JSP. En el ejemplo que has proporcionado, parece que falta la declaración de los nombres de espacio y prefijos necesarios para XSLT y JSTL. Asegúrate de agregar las siguientes declaraciones al inicio del archivo JSP:

1
2
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="x" uri="http://xml.apache.org/xalan" %>

2. En el template XSL, cambia el método de salida a "xml" en lugar de "html". Esto permitirá que el XSLT genere el código HTML correctamente.

1
<xsl:output method="xml" />

3. Asegúrate de que los nombres de los elementos en el archivo XML coincidan con los nombres utilizados en el template XSL. En el ejemplo que has proporcionado, los elementos `<tutoriales>` y `<tutorial>` en el archivo XML deben coincidir con las expresiones de selección en el template XSL:

1
<xsl:for-each select="//tutorial">

Con estos cambios, el código HTML definido en el template XSL debería generarse correctamente en el JSP. Asegúrate de que el archivo XSL esté ubicado en la ruta correcta (`/WEB-INF/xml/book.xsl` en este caso) para que se pueda importar correctamente en el JSP.

Recuerda también que es posible que necesites ajustar el código en función de la versión y la configuración específica de tus librerías y entorno de desarrollo. Si aún encuentras problemas, verifica la documentación y los recursos específicos de las bibliotecas que estás utilizando (por ejemplo, JSTL y Apache Xalan) para obtener más información y soluciones.
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