XSLT - En el servidor
Para que los datos XML estén disponibles para todo tipo de navegadores, podemos transformar el documento XML en el SERVIDOR y enviarlo de vuelta al navegador como XHTML.
Una solución de navegador cruzado
En el capítulo anterior explicamos cómo se puede usar XSLT para transformar un documento de XML a XHTML en el navegador. Utilizamos un JavaScript y un analizador XML para la transformación. Sin embargo, esto no funcionará en un navegador que no tenga un analizador XML.Para que los datos XML estén disponibles para todo tipo de navegadores, podemos transformar el documento XML en el servidor y enviarlo al navegador como XHTML.
Esa es otra belleza de XSLT. Uno de los objetivos de diseño de XSLT era hacer posible la transformación de datos de un formato a otro en un servidor, devolviendo datos legibles a todo tipo de navegadores.
El archivo XML y el archivo XSLT
Mira el documento XML que has visto en los capítulos anteriores:
<?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>
Y la hoja de estilo XSL adjunta:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th style="text-align:left">Title</th>
<th style="text-align:left">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>
</xsl:template>
</xsl:stylesheet>
Tenga en cuenta que el archivo XML no tiene una referencia al archivo XSL.
IMPORTANTE: La oración anterior indica que un archivo XML podría transformarse utilizando muchas hojas de estilo XSL diferentes.
Código PHP: transforma XML a XHTML en el servidor
Aquí está el código fuente de PHP necesario para transformar el archivo XML a XHTML en el servidor:
<?php
// Load XML file
$xml = new DOMDocument;
$xml->load('cdcatalog.xml');
// Load XSL file
$xsl = new DOMDocument;
$xsl->load('cdcatalog.xsl');
//
Configure the transformer
$proc = new XSLTProcessor;
// Attach the xsl
rules
$proc->importStyleSheet($xsl);
echo $proc->transformToXML($xml);
?>
Sugerencia: si no sabe cómo escribir PHP, estudie nuestro tutorial de PHP .
Código ASP: transformar XML a XHTML en el servidor
Aquí está el código fuente ASP necesario para transformar el archivo XML a XHTML en el servidor:
<%
'Load XML file
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("cdcatalog.xml"))
'Load XSL file
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("cdcatalog.xsl"))
'Transform file
Response.Write(xml.transformNode(xsl))
%>