Inicio /
XSLT en el cliente

Introducción

En 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 JavaScript

En 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 Navegador

Aquí 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.


Daniel P. @ 10:38 | comentarios (3) | Links Permanentes



<< November 2024 >>
Sun Mon Tue Wed Thu Fri Sat
  1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
 

archivos

November - 2013
October - 2013
July - 2013
June - 2013
May - 2013
April - 2013
March - 2013
February - 2013
November - 2010
October - 2010
September - 2010
August - 2010
June - 2010
November - 2009
October - 2009
September - 2009
March - 2009
February - 2009
January - 2009
September - 2008
May - 2008
April - 2008
November - 2007
October - 2007
May - 2007
April - 2007
March - 2007
February - 2007
January - 2007
December - 2006
September - 2006
August - 2006
June - 2006
May - 2006
April - 2006
February - 2006
January - 2006
December - 2005
November - 2005

powered by SimpleBlog 2.0

rss feed




Ir a Blog de Recetas de Cocina