Gli ultimi tutorial di sviluppo web
 

XSLT - Sul server


Per rendere i dati XML a disposizione di tutti i tipi di browser, possiamo trasformare il documento XML sul server e inviarlo al browser come XHTML.


Una soluzione Cross Browser

Nel capitolo precedente abbiamo spiegato come XSLT può essere utilizzato per trasformare un documento da XML a XHTML nel browser. Abbiamo usato un Javascript e un parser XML per la trasformazione. Tuttavia, questo non funzionerà in un browser che non dispone di un parser XML.

Per rendere i dati XML a disposizione di tutti i tipi di browser, possiamo trasformare il documento XML sul server e inviare al browser come XHTML.

Questo è un altro bellezza di XSLT. Uno degli obiettivi di progettazione per XSLT è stato quello di rendere possibile per trasformare i dati da un formato ad un altro su un server, restituzione dei dati leggibili a tutti i tipi di browser.


Il file XML e il file XSLT

Guardate il documento XML che avete visto nei capitoli precedenti:

<?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>

Visualizzare il file XML .

E lo accompagna foglio di stile 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>

Visualizzare il file XSL .

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

IMPORTANT: La frase di cui sopra indica che un file XML potrebbe essere trasformato utilizzando molti fogli di stile XSL diversi.


Codice PHP: Trasforma XML a XHTML sul server

Ecco il codice sorgente PHP necessario per trasformare il file XML a XHTML sul server:

<?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: Se non sai come scrivere PHP, si prega di studiare la nostra esercitazione PHP .

Guarda come funziona con PHP .


Codice ASP: Trasforma XML a XHTML sul server

Ecco il codice sorgente ASP necessario per trasformare il file XML a XHTML sul server:

<%
'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: Se non sai come scrivere ASP, si prega di studiare la nostra esercitazione ASP .

Guarda come funziona con ASP .