XSLT - En el servidor
- Página anterior XSLT en el cliente
- Página siguiente Editar XML con XSLT
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>
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>
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!
- Página anterior XSLT en el cliente
- Página siguiente Editar XML con XSLT