Trasformare Xml in Xslt con Asp

Corso XML
Creazione di strutture XML, XSL ed altri linguaggi eXtensible

Scritto da Luca Ruggiero nella sezione Xml

Abbiamo visto nella lezione Applicare un foglio di stile Xsl ad un file Xml com'è possibile trasformare un documento Xml in formato Html leggibile, con l'utilizzo di un foglio di stile Xsl. Nell'esempio citato richiamiamo il file Xsl all'interno del file Xml, e la trasformazione è visibile lanciando direttamente nel browser il documento Xml. Un esempio del genere rischia di funzionare solo in certi browser, per lo più di casa Microsoft, essendo del tutto lasciato al libero arbitrio del client stesso.

Applicando ad un file Asp il metodo transformNode() del Document Object Model (che da ora in poi chiameremo DOM) è possibile applicare la trasformazione direttamente sul server Web, restituendo al browser il codice già formattato in Html puro.

Vediamo un esempio:

<%@LANGUAGE = JScript%>
<html>
    <head>
        <title>Trasformare Xml in Xsl(t) con Asp</title>
    </head>
<body>

<%
    var xmldom = new ActiveXObject("Microsoft.XMLDOM");
        xmldom.async = false;
        xmldom.load(Server.MapPath("documento.xml"));

    var xsldom = new ActiveXObject("Microsoft.XMLDOM");
        xsldom.async = false;
        xsldom.load(Server.MapPath("documento.xsl"));

    Response.Write(xmldom.transformNode(xsldom));
%>

</body>
</html>
Il funzionamento è semplice. Creo due istanze dell'oggetto Microsoft.XMLDOM: al primo oggetto assegno il documento Xml ed al secondo assegno il documento Xsl; a questo punto applico la trasformazione Xsl al documento Xml.

Di seguito i codici di esempio dei file Xml ed Xsl:

documento.xml
<?xml version="1.0" encoding="ISO-8859-1"?>

<database>
    <record>
        <nome>Luca</nome>
        <cognome>Ruggiero</cognome>
        <sito>http://www.lukeonweb.net</sito>
    </record>
    <record>
        <nome>Paolo</nome>
        <cognome>Capitani</cognome>
        <sito>http://www.aspcode.it</sito>
    </record>
    <record>
        <nome>Max</nome>
        <cognome>Bossi</cognome>
        <sito>http://www.mrwebmaster.it</sito>
    </record>
</database>
documento.xsl
<?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="/">
    <h2>Lista utenti</h2>
    <table border="1">
        <tr bgcolor="#EEEEEE">
            <td align="left"><b>Nome</b></td>
            <td align="left"><b>Cognome</b></td>
            <td align="left"><b>Sito</b></td>
        </tr>
        <xsl:for-each select="database/record">
        <tr>
            <td><xsl:value-of select="nome" /></td>
            <td><xsl:value-of select="cognome" /></td>
            <td><xsl:value-of select="sito" /></td>
        </tr>
        </xsl:for-each>
    </table>
</xsl:template>
</xsl:stylesheet>
Prego di tener presente il fatto che al codice Asp non è necessario passare parametri ulteriori e/o diversi da quelli del codice di esempio: la trasformazione avviene indipendentemente dalla volontà del motore Asp; ad effettuare la trasformazione pensa il parser Xml del server, ed è questo particolare che rende portabile l'applicazione su tutti i browser.

I più cliccati della sezione Xml

:: Estrarre dati da un file Xml con Javascript (33.347)

:: Un motore di ricerca con Xml e Javascript (25.881)

:: Applicare un foglio di stile Xsl ad un file Xml (22.255)

:: Leggere un file Xml con l'oggetto XMLDOM (18.112)

:: Introduzione all'oggetto XMLHTTP (16.951)

:: Leggere un Feed RSS con PHP (14.623)

:: Scorrere i record di un file Xml con Javascript (14.517)

:: Leggere un file Xml con Php (12.862)

:: Un sistema di login in Javascript ed Xml (11.908)

:: Applicare un foglio di stile Css ad un file Xml (11.024)

IN EVIDENZA
DOWNLOAD