Importare fisier XML
In acest exemplu, vedem cum este importat un fisier XML si cum se scriu datele in baza de date folosind obiecte datarow pentru a simplifica operatia. Mai exact, vom crea un mic importator de articole. Script-ul este o actiune care trebuie asociata direct cu programul.
Grup Script
Program
Eveniment
Actiune program
document = program.loadxmldocument()
if document == nil then
do return end
end
Mai intai cream un obiect document care va contine intregul fisier XML. Daca parcursul nu este introdus intre paranteze, programul va afisa ecranul de selectare a fisierelor. Aceasta operatie variaza in functie de tipul de sistem de operare deoarece, fiecare are propriile sale reguli de gestionare a fisierelor.
headitems = document.getelementbyname("Items")
if headitems == nil then
program.showerror("Error in xml (Items) .Unable to continue!")
do return end
end
Extragem primul nod al fisierului XML. Desigur, trebuie sa stim cum se numesc diferitele noduri si, daca este solicitat un nod care nu exista, programul va afisa null si va iesi.
items= headitems.getelementbyname("Elenco")
Extragem sub-nodul care contine toate articolele.
for i,row in pairs(items) do
code= row.getelementbyname("Code").getvalue()
titems= database.getsql("SELECT * FROM items WHERE code='" .. code .. "'")
if titems.countrows() ~= 0 then
rowitem = titems.getrows()[1]
else
rowitem= database.newdatarow("items")
end
rowitem.setvalue("description",row.getelementbyname("Description").getvalue())
rowitem.setvalue("price",tonumber(row.getelementbyname("Price").getvalue()))
if rowitem.save() == false then
program.showerror(errorn.errormessage)
do return end
end
end
Rasfoim toate articolele si, cu ajutorul codului, verificam daca acesta din urma este deja prezent in baza de date sau nu. Daca nu, vom crea un rand nou.
Ca ultim pas, recuperam valorile dorite din fisierul XML si salvam randul.