Utilizzare l'FSO per salvare una Query in formato Xml

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

Scritto da Luca Ruggiero nella sezione Xml

In questo articolo abbiamo visto come salvare un recordset ADO in formato Xml utilizzando il metodo Save() dell'oggetto ADODB.Recordset.
Vediamo adesso come ottenere un risultato migliore, maggiormente leggibile e gestibile, anche se in maniera un po più macchinosa, ma non troppo complessa per chi ha un minimo di dimestichezza con Asp, con l'accesso ad una fonte di dati ODBC e con la manipolazione del File System.

E' necessario disporre di un database su cui andare a salvare in maniera stabile e sicura i record; si crei il database di prova xmldb.mdb e si crei la tabella nominativi, la quale sarà composta dai campi id (di tipo Contatore), nome e cognome (entrambi di tipo Testo). Si incrementi la tabella con l'inserimento di alcuni dati di prova e si chiuda Access.

Si crei un file Asp di prova e lo si lanci nel browser tramite il proprio server Web personale, dopo averlo implementato col seguente codice, abbondantemente commentato:

<%@LANGUAGE = JScript%>
<%
    // Mi connetto al database
    var Cn = new ActiveXObject("ADODB.Connection");
    Cn.Open("driver={Microsoft Access Driver (*.mdb)};dbq=" + Server.MapPath("xmldb.mdb"));

    // Eseguo una Query generica
    var Mostra = Cn.Execute("SELECT * FROM nominativi");

    // Definisco il file Xml che mi serve ed istanzio l'oggetto FSO
    var xmlfile = Server.MapPath("database.xml");
    var FSO = new ActiveXObject("Scripting.FileSystemObject");

    // Verifico l'esistenza del file Xml: se già esiste lo cancello
    if (FSO.FileExists(xmlfile))
    {
        FSO.DeleteFile(xmlfile);
    }

    // Creo il file Xml
    var scrivi = FSO.CreateTextFile(xmlfile);

        // Inizio a scrivere nel file Xml
        scrivi.WriteLine("<?xml version="1.0"?>");
        scrivi.WriteLine("<database>");

        // Eseguo il ciclo sui record e salvo i risultati in formato Xml
        while (!Mostra.EOF)
        {
            with (scrivi)
            {
                WriteLine("<record>");
                WriteLine("<id>" + Mostra("id") + "</id>");
                WriteLine("<nome>" + Mostra("nome") + "</nome>");
                WriteLine("<cognome>" + Mostra("cognome") + "</cognome>");
                WriteLine("</record>");
                Mostra.MoveNext();
            }
        }
        scrivi.WriteLine("</database>");

    // Chiudo la connessione
    Cn.Close();

    Response.Write("Il file Xml è stato creato con successo!");
%>

I più cliccati della sezione Xml

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

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

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

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

:: Introduzione all'oggetto XMLHTTP (16.713)

:: Leggere un Feed RSS con PHP (14.214)

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

:: Leggere un file Xml con Php (12.714)

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

:: Inserire dati in un file Xml con l'oggetto XMLDOM (10.795)

IN EVIDENZA
DOWNLOAD