Articoli Referenze Script FAQ Downloads ASP E-Commerce con ASP Menu Javascript Area Aziende Cocktail Registrazione domini



Trasformare un file XML con XSLT attraverso XMLDOM ed ASP

Home + Articoli + XML + Articolo # 110
Autore: Luca Ruggiero



In un precedente articolo abbiamo visto come leggere un file XML con ASP ed XMLDOM in maniera tradizionale. Negli articoli introduttivi ad XML e ad XSLT, invece, abbiamo introdotto la tecnologia e la struttura dell'ormai noto linguaggio estensibile, e la trasformazione stilistica proprietaria in formato HTML intelligibile da un browser, limitandoci però ad un est lato client.

Lo scopo di questo articolo è quello di affrontare la trasformazione di un file XML con XSLT lato server attraverso ASP.

Il sistema è dei più semplici; prendiamo come spunto i file "rubrica.xml" e "rubrica.xsl" presentati negli articoli introduttivi, indicati con un link nelle righe precedenti di questo articolo, di cui ripropongo i codici
<?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>
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" />
<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>
Al file XSLT ho aggiunto una riga evidenziata in grassetto, il cui scopo è quello di produrre in output codice HTML pulito e non codice HTML ed XML misto.

Veniamo al codice ASP, da posizionare nel punto in cui si vuole che venga effettuata la trasformazione e la relativa stampa a video
<%
    Dim MyXML, MyXSL
    Set MyXML = Server.CreateObject("Microsoft.XMLDOM")
        MyXML.Async = False
        MyXML.Load Server.MapPath("rubrica.xml")
    Set MyXSL = Server.CreateObject("Microsoft.XMLDOM")
        MyXSL.Async = False
        MyXSL.Load Server.MapPath("rubrica.xsl")
    Response.Write MyXML.transformNode(MyXSL)
    Set MyXML = Nothing
    Set MyXSL = Nothing
%>
Il funzionamento è ormai davvero banale: creo due oggetti XMLDOM ed in uno carico il file XML, mentre nell'altro carico il file XSLT; utilizzo poi il metodo transformNode associato all'istanza dell'oggetto XMLDOM che carica il file XML; passerò poi come parametro obbligatorio al metodo l'istanza dell'oggetto XMLDOM che carica il file XSLT.

© 2008 ASP Center di Luca Ruggiero - P. IVA 05564851219 - Disclaimer | Privacy | Pubblicità | Supportaci | Staff | Contatti
  Appunti PHP | Giornale Webmaster | Mr.Webmaster | Download | DevSpy.com | ASPCode.it | ClaudioGarau.it | Webmaster Facile | Come Faccio | CodiceFacile.it | I Programmatori | By Luciani | VoiceXML Italian User Group | Giochi | Extro Web Site | Morpheus Web | AG Web Solutions | Net-Free | PC Sicuro | PC Self | Tutorial Web | Dablones