XSLT - Transformación
Estudio de ejemplo: ¿Cómo transformar XML en XHTML usando XSLT?
Los detalles de este ejemplo se explicarán en el próximo capítulo.
Declaración de hoja de estilo correcta
El elemento raíz que declara que el documento es una hoja de estilo XSL es <xsl:stylesheet> o <xsl:transform>.
Nota: <xsl:stylesheet> y <xsl:transform> son completamente sinónimos y se pueden usar cualquiera de los dos.
La forma correcta de declarar una hoja de estilo XSL de acuerdo con la recomendación W3C XSLT es:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
o:
<xsl:transform version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
Para obtener acceso a los elementos, atributos y funciones XSLT, debemos declarar el espacio de nombres XSLT en la parte superior del documento.
El xmlns:xsl="http://www.w3.org/1999/XSL/Transform" apunta al espacio de nombres W3C XSLT oficial. Si usa este espacio de nombres, también debe incluir el atributo version="1.0".
Comience con un documento XML sin procesar
Queremos transformar el siguiente documento XML ("cdcatalog.xml") en XHTML:
<?xml version="1.0" encoding="UTF-8"?>
<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>
Visualización de archivos XML en IE, Chrome, Firefox, Safari y Opera: Abra el archivo XML (haga clic en el enlace a continuación): el documento XML se mostrará con elementos secundarios y raíz codificados por colores (excepto en Safari). A menudo, hay un signo más (+) o menos (-) a la izquierda de los elementos en los que se puede hacer clic para expandir o contraer la estructura del elemento. Sugerencia: para ver la fuente XML sin procesar, haga clic con el botón derecho en el archivo XML y seleccione "Ver fuente".
Crear una hoja de estilo XSL
Luego, crea una hoja de estilo XSL ("cdcatalog.xsl") con una plantilla de transformación:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</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>
Vincular la hoja de estilo XSL al documento XML
Agregue la referencia de la hoja de estilo XSL a su documento XML ("cdcatalog.xml"):
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="cdcatalog.xsl"?>
<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>
Si tiene un navegador compatible con XSLT, transformará muy bien su XML en XHTML.
Los detalles del ejemplo anterior se explicarán en los próximos capítulos.