Importer un fichier XML
Dans cet exemple nous voyons comment importer un fichier xml et écrire les données à l’intérieur de la base de données en utilisant des objets datarow pour rendre l’opération plus simple. En particulier, nous allons créer un petit importateur d’articles. Le script est une action à associer directement au logiciel.
Groupe Script
Programme
Événement
Action Programme
document = program.loadxmldocument()
if document == nil then
do return end
end
D’abord nous créons un objet document qui contiendra tout le fichier xml. Si le chemin n’est pas saisi entre parenthèses, le logiciel affichera l’écran de sélection de fichiers. Cette opération varie selon le type de système d’exploitation parce que chacun a ses propres règles de gestion de fichiers.
headitems = document.getelementbyname("Items")
if headitems == nil then
program.showerror("Error in xml (Items) .Unable to continue!")
do return end
end
Nous extrayons le premier nœud du fichier xml. Bien sûr, nous devons savoir comment s’appellent les nœuds et au cas où il serait demandé un nœud qui n’existe pas, le programme redonnera null et sortira.
items= headitems.getelementbyname("List")
Nous extrayons le sous-noeud contenant tous les articles.
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
Nous tournons tous les articles et, avec le code, nous vérifions si ce dernier est déjà présent dans la base de données ou pas. En cas de réponse négative nous créons une nouvelle ligne.
Comme dernière opération nous récupérons les valeurs que nous voulons dans le fichier xml et nous enregistrons la ligne.