Sábado, 25 de Febrero de 2006. Escrito por Daniel P.
IntroducciónEn este artículo se explican las distintas soluciones que hay para el tratamiento de documentos a través de plantillas XSLT en el cliente, siempre que lo soporte el navegador. Solución JavaScriptEn los capítulos anteriores se ha explicado como XSLT puede ser usado para transformar documentos XML a XHTML. En muchos navegadores asociando una hoja de estilos XSL al documento XML, este nos hace la transformación automáticamente. Para lo cual se añadirá una etiqueta como la siguiente: <?xml-stylesheet type="text/xsl" href="cdcatalogo.xsl"?>. Donde cdcatalogo.xsl es la hoja de estilos asociada. Incluso si así funciona, no siempre es deseable incluir una etiqueta de referencia a una hoja de estilos XSL dentro de un documento XML (Eje: Si se va a trabajar sobre un navegador que no soporta XSLT ) Una solución más versátil es el uso de JavaScript para realizar las transformaciones. Usando JavaScript podremos: • Realizar testeos específicos con el navegador • El uso de diferentes hojas de estilo dependiendo de las necesidades del navegador y del usuario Uno de los puntos fuertes de XSLT es que hace posible la transformación de los datos de un formato a otro, soportando diferentes navegadores y necesidades de usuario. Las transformaciones XSLT en el lado del cliente será un salto para la mayor parte de las tareas de trabajo de un navegador y estamos viendo un crecimiento en el mercado de los navegadores especializados (Braile, Navegadores auditivos, etc).
El fichero XML y el fichero XSL Veamos un fragmento del documento XML con el que hemos ido trabajando en el resto de capítulos: <?xml version="1.0" encoding="ISO-8859-1"?> <catalogo> <cd> <titulo>Empire Burlesque</titulo> <artista>Bob Dylan</artista> <pais>USA</pais> <discografica>Columbia</discografica> <precio>10.90</precio> <anio>1985</anio> </cd>
… … </catalogo>
|
Y el siguiente XSL que lo acompaña <?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 coleccion de CD</h2> <table border="1"> <tr bgcolor="#9acd32"> <th align="left">Titulo</th> <th align="left">Artista</th> </tr> <xsl:for-each select="catalogo/cd"> <tr> <td><xsl:value-of select="titulo" /></td> <td><xsl:value-of select="artista" /></td> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
|
Fíjese que el documento XML no tiene referencia al archivo XSL. Importante: Las sentencia de más arriba indica que el documento XML puede ser transformado usando diversas hojas de estilo XSL. Transformación XML a XHTML en el NavegadorAquí mostramos el código necesario para transformar un archivo XML a un archivo XHTML en el cliente: <html> <body> <script type="text/javascript"> // Load XML var xml = new ActiveXObject("Microsoft.XMLDOM") xml.async = false xml.load("cdcatalogo.xml") // Load XSL var xsl = new ActiveXObject("Microsoft.XMLDOM") xsl.async = false xsl.load("cdcatalogo.xsl") // Transform document.write(xml.transformNode(xsl)) </script> </body> </html>
|
El primer bloque de código crea una instancia del parser o analizador sintáctico XML de Microsoft (XMLDOM), y carga el documento XML en memoria. El segundo bloque de código crea otra instancia del parser y carga en memoria el documento XSL. El último bloque de código transforma el documento XML usando el documento XSL y muestra el resultado como XHTML en el navegador.
comentarios (3)
|