Los últimos tutoriales de desarrollo web
 

XSLT - En el servidor


Para que los datos XML disponible para todo tipo de navegadores, podemos transformar el documento XML en el servidor y enviar de vuelta al navegador como XHTML.


Una solución de navegadores

En el capítulo anterior explicamos cómo XSLT puede ser utilizado para transformar un documento XML a partir de XHTML en el navegador. Se utilizó un JavaScript y un analizador XML para la transformación. Sin embargo, esto no va a funcionar en un navegador que no tiene un analizador XML.

Para que los datos XML disponible para todo tipo de navegadores, podemos transformar el documento XML en el servidor y enviar de vuelta 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, la devolución de datos legibles a todo tipo de navegadores.


El archivo XML y el archivo XSLT

Mira el documento XML que se ha 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>

Ver el archivo XML .

Y el interior la hoja de estilo XSL:

<?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 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>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

Ver el archivo XSL .

Notice that the XML file does not have a reference to the XSL file.

IMPORTANT: La frase anterior indica que un archivo XML podría ser transformada usando muchas diferentes hojas de estilo XSL.


Código PHP: Transformar 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);
?>

Tip: Si usted no sabe cómo escribir PHP, por favor estudiar nuestro tutorial de PHP .

Vea cómo se trabaja con PHP .


Código ASP: Transformar XML a XHTML en el servidor

Aquí está el código fuente ASP necesaria 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))
%>

Tip: Si usted no sabe cómo escribir ASP, por favor estudie nuestro tutorial de ASP .

Vea cómo se trabaja con ASP .