Convertire dei dati in XML

2 pagine in totale: <<Indietro 1 [2]

Bisogna specificare che nel caso dello script, la parte di estrazione dati dal database può essere adattata a propio piacimento a seconda del tipo di database  (Oracle , SQL Server , Access o qualsiasi alra fonte) e quindi, a seconda del tipo di accesso al record  che si utilizza.
In questo caso ho fatto una prova su una tabella di un database Access, con una connessione via ODBC, tuttavia la parte "importante" è il ciclo che legge il recordset e crea i tag corrispondenti ai dati.
L'ultima cosa che aggiungo, prima di presentare questo script ,  è che è stato utilizzato come libreria, per utilizzare l'oggetto Microsoft.XMLDOM , il file msxml3.dll
Infatti la libreria contenuta in msxml.dll  risultava avere dei bugs (per gli ultimi aggiornamenti riferirsi al sito MSDN).

<%
Dim objXMLdoc
set objXMLdoc = Server.CreateObject ("Microsoft.XMLDOM")
' creo l' "oggetto" che mi permette di costruire il mio documento XML
objXMLdoc.async = False
Set objXMLroot = objXMLdoc.createElement("radice")
'creo il tag che avrà nome radice  e che costituirà la radice del mio file XML
objXMLdoc.appendchild (objXMLroot)
' una volta creata la radice la  vado a inserire nell'oggeto objXMLdoc
Dim cnnSimple  ' ADO connection
Dim rstSimple  ' ADO recordset
Dim strDSN
Set cnnSimple = Server.CreateObject("ADODB.Connection")
'creo una connessione
strDSN  = "FILEDSN=Connetti.dsn"
' utilizzo una connessione ODBC creata sulla mia macchina per accedere al database
' tuttavia per questo esempio qualsiasi connessione va bene basta poter scorrere il ' ' ' ' recordset
cnnSimple.Open strDSN
Set rstSimple = cnnSimple.Execute("SELECT * FROM nazioni")
'eseguo una select per estrarre dalla tabella nazioni tutti i record

Do While Not rstSimple.EOF
'faccio un ciclo per leggere tutti i dati
Set figlio2 = objXMLdoc.createnode ("element" , "nazione"  ,"" )
' per ciascun campo del record creo il tag  "nazione "
figlio2.text = rstSimple.Fields("nazione").Value
' scrivo il dato estratto dal record ossia il nome della nazione tra i tag nazione
figlio2.setAttribute  rstSimple.Fields("id_nazione").name, _
rstSimple.Fields("id_nazione").Value

'creo l'attributo del tag nazione  dandogli e gli assegno il valore estratto dal campo 'id_nazione
objXMLdoc.documentElement.appendChild (figlio2)
'aggiungo il tag creato al documento XML
Set figlio2 = nothing
rstSimple.MoveNext
' continuo a ciclare fino a quando non ho passato tutti  i record
Loop

objXMLdoc.Save Server.MapPath ("costruito.xml")
'salvo il documento con il nome costruito ed estensione xml
Set figlio = nothing
Set objXMLdoc =nothing
rstSimple.Close
Set rstSimple = Nothing
cnnSimple.Close
Set cnnSimple = Nothing
%>

Se provate questo script, sembrerà che non accada nulla.

Tuttavia, se andate a cercare il file costruito.xml e lo aprirete questo si presenterà nelle seguente forma :

<radice>
<nazione id_nazione=" 2 "> URSSSSS </nazione>
<nazione id_nazione=" 7 "> Antartico </nazione>
<nazione id_nazione=" 8 "> Antigua e Barbuda </nazione>
<nazione id_nazione=" 9 "> Arabia Saudita </nazione>
<nazione id_nazione=" 10 "> Argentina </nazione>
<nazione id_nazione=" 11 "> Armenia </nazione>
<nazione id_nazione=" 12 "> Aruba </nazione>
<nazione id_nazione=" 13 "> Australia </nazione>
<nazione id_nazione=" 14 "> Austria </nazione>
<nazione id_nazione=" 15 "> Azerbaijan </nazione>
<nazione id_nazione=" 16 "> Bahamas </nazione>
<nazione id_nazione=" 17 "> Bahrain </nazione>
<nazione id_nazione=" 18 "> Bangladesh </nazione>
...
</radice>

A cosa potrebbe servire uno script simile? Al giorno d'oggi è molto frequente dover scambiare dati tra applicazioni che di default non sono compatibili. Un approccio basato su XML, invece, potrebbe garantire una certa standardizzazione della gestione e presentazione dei dati stessi.

2 pagine in totale: <<Indietro 1 [2]

Contenuti dell'articolo

    Commenti
    Dai un voto a questo articolo, ci aiuterà a migliorare il nostro sito (1 è il voto minimo, 5 il massimo).

    Per procedere al rating dell'articolo devi essere autenticato.

    Aggiungi un nuovo commento »»»
    Per inserire un commento, devi registrarti alla nostra community.


    TUTORIALS
    TOP TEN ARTICOLI
    NOTIFICHE

    Iscriviti alla nostra newsletter nuoviarticoli per ricevere e-mail le notifiche!

    Indirizzo e-mail:
    PROVIDER ASP.NET 2.0

    Seleziona il database per avere il web.config pronto per Membership, Roles e Profile API.



    IN EVIDENZA
    MISC