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
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.







Difficoltà
Stampa
Download 



