XSLT - En el servidor

Dado que no todos los navegadores admiten XSLT, otra solución es completar la conversión de XML a XHTML en el servidor.

Solución multi-navegador

En el capítulo anterior, explicamos cómo usar XSLT en el navegador para realizar la conversión de XML a XHTML. Creamos un fragmento de JavaScript que utiliza un analizador XML para la conversión. La solución de JavaScript no funciona en navegadores sin analizador XML. Para que los datos XML sean adecuados para cualquier tipo de navegador, debemos realizar la conversión del documento XML en el servidor y luego enviarlo como XHMTL al navegador.

Esta es otra ventaja de XSLT. Uno de los objetivos de diseño de XSLT es hacer posible que los datos se transformen de un formato a otro en el servidor y que se envíen datos legibles a todos los tipos de navegadores.

Archivos XML y archivos XSL

Por favor, revise este documento XML que se ha presentado en el capítulo anterior:

<?xml version="1.0" encoding="ISO-8859-1"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
.
.
.
</catalog>

Ver este archivo XML.

y las hojas de estilo XSL adjuntas:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <h2>Mi colección de CDs</h2> 
    <table border="1">
      <tr bgcolor="#9acd32">
        <th align="left">Título</th> 
        <th align="left">Artista</th> 
      </tr>
      <xsl:for-each select="catalog/cd">
      <tr>
        <td><xsl:value-of select="title" /></td>
        <td><xsl:value-of select="artist" /></td>
      </tr>
      </xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

Ver este archivo XSL.

Tenga en cuenta que este archivo XML no contiene referencias a archivos XSL.

Importante:La frase anterior indica que los archivos XML pueden ser transformados utilizando múltiples hojas de estilo XSL diferentes.

La conversión de XML a XHTML en el servidor

Este es el código fuente para convertir archivos XML en XHTML en el servidor:

<%
'Cargar XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Cargar XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transformar archivo
Response.Write(xml.transformNode(xsl))
%>

Consejo:Si no sabes cómo escribir ASP, puedes aprender nuestroTutoriales de ASP>

El primer código crea una instancia del analizador XML de Microsoft y luego carga el archivo XML en la memoria. El segundo código crea otra instancia del analizador y luego carga este archivo XSL en la memoria. La última línea de código utiliza el documento XSL para transformar el documento XML y enviar el resultado como XHTML a su navegador. ¡Tarea completada!

Vea cómo funciona.