ASPcenter.net

3 marzo 2010

Il linguaggio XSL

Archiviato in: ASP e XML — Tag:, , , — lukeonweb @ 11:39

XSL (o XSLT, acronimo di eXensible Stylesheet Language Transformation) è un meta-linguaggio dell’XML atto a stilizzare e rendere presentabile un documento XML, per certi versi avvicinandosi in maniera sorprendente ad un linguaggio di scripting.

I fogli di stile XSLT, che rimangono comunque proprietari dell’XML e non adattabili ad altri tipi di documenti, presentano struttura e sintassi identiche all’XML, ma in più incorporano codice (X)HTML e CSS.


Creiamo un primo esempio di documento XSLT salvando il file style.xsl rinominando un file di testo e modificandone l’estensione. Segue un codice di esempio che stilizza il seguente documento XML, tratto dall’articolo precedente:

<?xml version="1.0" encoding="ISO-8859-1"?>
<rubrica>
    <utente>
        <nome>Pippo</nome>
        <telefono>001122</telefono>
    </utente>
    <utente>
        <nome>Pluto</nome>
        <telefono>334455</telefono>
    </utente>
    <utente>
        <nome>Paperino</nome>
        <telefono>667788</telefono>
    </utente>
</rubrica>

Nel file XML possiamo impostare la seguente dichiarazione per effettuare la trasformazione da XML a XSLT lato client, eseguita dal parser XML

<?xml-stylesheet type="text/xsl" href="style.xsl"?>

ma ovviamente effettueremo le trasformazioni lato server con ASP, quindi considerate questo espediente come tale. Vediamo adesso il codice XML corredato della stringa di trasformazione

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<rubrica>
    <utente>
        <nome>Pippo</nome>
        <telefono>001122</telefono>
    </utente>
    <utente>
        <nome>Pluto</nome>
        <telefono>334455</telefono>
    </utente>
    <utente>
        <nome>Paperino</nome>
        <telefono>667788</telefono>
    </utente>
</rubrica>
<?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="/">
<table align="center" width="50%" border="1">
    <tr bgcolor="#000000">
    <td style="color: #FFFFFF;"><b>Nome</b></td>
    <td style="color: #FFFFFF;"><b>Telefono</b></td>
    </tr>
    <xsl:for-each select="rubrica/utente">
    <tr>
    <td><xsl:value-of select="nome"/></td>
    <td><xsl:value-of select="telefono"/></td>
    </tr>
    </xsl:for-each>
</table>
</xsl:template>
</xsl:stylesheet>

Utilizziamo la stessa dichiarazione iniziale che caratterizza i documenti XML, dichiariamo poi il modello che andremo a seguire, ovvero

<xsl:template match="/">

che dichiara la root da cui partire, ovvero lo slash (/).

Possiamo adesso iniziare a scrivere anche in HTML, formattando il testo con i fogli di stile CSS incorporati; per richiamare i valori dei nodi dei Tag XML utilizziamo l’espressione

<xsl:value-of select="rubrica/utente"/>

dove richiamiamo il percorso root/elemento; tutte le espressioni sono seguite da relativa chiusura, oppure, se si tratta di un Tag vuoto, utilizzeremo l’espressione />, come ad esempio <br/>.

Il file XML che abbiamo utilizzato è composto da più “record”, ragion per cui è necessario effettuare un ciclo per estrarre tutti i dati; ci pesnsa stesso XSLT con l’istruzione xsl:for-each

<xsl:for-each select="rubrica/utente">

XSLT è un linguaggio davvero molto ampio che offre la possibilità di gestire i file XML in maniera molto vasta e completa. Allo scopo, in questa sezione, vedremo moltissimi articoli che prendono in esame i singoli casi.

Nessun commento »

Non c'è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URL

Lascia un commento

ASPcenter.net è il blog italiano su ASP, ASP.Net, VB.Net, C# e Visual Studio - Funziona con WordPress