Importare un file XML
In questo esempio vediamo come importare un file xml e scrivere i dati all’interno del database usando degli oggetti datarow per rendere l’operazione più semplice. Nello specifico realizzeremo un piccolo importatore di articoli. Lo script è un’azione da associare direttamente al programma.
Gruppo Script
Programma
Evento
Azione Programma
documento = program.loadxmldocument()
if documento == nil then
do return end
end
Per prima cosa creiamo un oggetto documento che conterrà tutto il file xml. Se non viene inserito il percorso tra le parentesi, il programma mostrerà la schermata di selezione dei file. Questa operazione varia in base al tipo di sistema operativo perché ognuno ha le proprie regole di gestione dei file.
testaarticoli = documento.getelementbyname("Articoli")
if testaarticoli == nil then
program.showerror("Errore su xml (Articoli).Impossibile continuare!")
do return end
end
Estrapoliamo il primo nodo del file xml. Naturalmente dobbiamo sapere come si chiamano i vari nodi e nel caso venga richiesto un nodo che non esiste il programma ridarà null e uscirà.
articoli = testaarticoli.getelementbyname("Elenco")
Estrapoliamo il sotto nodo contenente tutti gli articoli.
for i,riga in pairs(articoli) do
codice = riga.getelementbyname("Codice").getvalue()
tarticoli = database.getsql("SELECT * FROM articoli WHERE codice='" .. codice .. "'")
if tarticoli.countrows() ~= 0 then
rigaarticolo = tarticoli.getrows()[1]
else
rigaarticolo = database.newdatarow("articoli")
end
rigaarticolo.setvalue("descrizione",riga.getelementbyname("Descrizione").getvalue())
rigaarticolo.setvalue("prezzo",tonumber(riga.getelementbyname("Prezzo").getvalue()))
if rigaarticolo.save() == false then
program.showerror(errorn.errormessage)
do return end
end
end
Giriamo tutti gli articoli e, attraverso il codice, controlliamo se quest’ultimo è già presente all’interno del database oppure no. In caso negativo creiamo una nuova riga.
Come ultima operazione recuperiamo i valori che vogliamo dal file xml e salviamo la riga.