Parsing XML files and saving in a database: Difference between revisions
Jump to navigation
Jump to search
m Admin moved page Parsing a XML files and saving in a database to Parsing XML files and saving in a database |
|||
| (2 intermediate revisions by the same user not shown) | |||
| Line 5: | Line 5: | ||
* a php File (xmlparser.php) | * a php File (xmlparser.php) | ||
* a XML-File (xml-File saved with your data) | * a XML-File (xml-File saved with your data) | ||
* A Button in your | * A Button in your AppStudio project (btnSave) | ||
= | = The Code = | ||
* my XML-File : http://erkankaplan.de/ipadSpeisekarte.xml | * my XML-File : http://erkankaplan.de/ipadSpeisekarte.xml | ||
* my xmlparser.php : http://erkankaplan.de/xmlparser.php.txt (I saved it as txt, please change it by your Project as php-File) | * my xmlparser.php : http://erkankaplan.de/xmlparser.php.txt (I saved it as txt, please change it by your Project as php-File) | ||
Latest revision as of 13:55, 21 February 2013
In this sample you can parse an XML-File with AJAX and save the Data in storage
You need
- a php File (xmlparser.php)
- a XML-File (xml-File saved with your data)
- A Button in your AppStudio project (btnSave)
The Code
- my XML-File : http://erkankaplan.de/ipadSpeisekarte.xml
- my xmlparser.php : http://erkankaplan.de/xmlparser.php.txt (I saved it as txt, please change it by your Project as php-File)
xmlparser.php
<?php
header('Access-Control-Allow-Origin: *');
echo file_get_contents($_GET['urlToGet']);
?>
XML-File
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu.xml>
<row>
<Menue>1</Menue>
<Scout></Scout>
<Text_D>Shake</Text_D>
<Text_C>Shake</Text_C>
<Beschreibung_D></Beschreibung_D>
<Beschreibung_C></Beschreibung_C>
<Sort>31</Sort>
<Gruppe>H</Gruppe>
<Preis3>0</Preis3>
<WarenGruppe>41</WarenGruppe>
<SabuSabu>1</SabuSabu>
<IpadZeitZone>0</IpadZeitZone>
</row>
<row>
<Menue>2</Menue>
<Scout></Scout>
<Text_D>Maguro</Text_D>
<Text_C>Maguro</Text_C>
<Beschreibung_D></Beschreibung_D>
<Beschreibung_C></Beschreibung_C>
<Sort>31</Sort>
<Gruppe>H</Gruppe>
<Preis3>0</Preis3>
<WarenGruppe>41</WarenGruppe>
<SabuSabu>1</SabuSabu>
<IpadZeitZone>2</IpadZeitZone>
</row>
<row>
<Menue>3</Menue>
<Scout></Scout>
<Text_D>Ika Nigiri Lachs</Text_D>
<Text_C>Ika Nigiri Lachs</Text_C>
<Beschreibung_D></Beschreibung_D>
<Beschreibung_C></Beschreibung_C>
<Sort>31</Sort>
<Gruppe>H</Gruppe>
<Preis3>0</Preis3>
<WarenGruppe>41</WarenGruppe>
<SabuSabu>1</SabuSabu>
<IpadZeitZone>0</IpadZeitZone>
</row>
..........
..........
..........
..........
..........
..........
AppStudio Code
Now the Code
Function btnSave_ontouchstart()
' You can use a local path too
Rem xmlFile = "C:\\Kasse10\\Backup\\ipadSpeisekarte.xml"
Rem but i use into Apache-Path
xmlFile = "ipadSpeisekarte.xml"
req = Ajax("http://www.erkankaplan.de/xmlparser.php/?urlToGet=" & xmlFile, "", "", xmlSaveInDB)
End Function
Function xmlSaveInDB
If !req Then Exit Function
If req.readyState<>4 Then Exit Function 'ignore progress reports
If req.status<>200 Then 'failure
console.log("Error: " & req.err)
Exit Function
End If
If Left(req.responseText,5)<>"<?xml" Then
console.log("XML not received" & req.responseText)
Exit Function
End If
Rem Datas saved now
data = $.xml2json(req.responseText)
Rem Fill the datas into DB
Call fillListFirstSpeisekarte
End Function
Function fillListFirstSpeisekarte
console.log("fillListFirst : -> Speisekarte")
Dim M1, M2, M3, M4, M5, M6, M7, M8, M9, M10, M11, M12, M13
sqlList=[]
Rem Drop the exiting table
sqlList[0]=["DROP TABLE speisekarte;"]
WaitCursor True
Sql(DB,sqlList)
WaitCursor False
sqlList=[]
Rem Create a new table
sqlList[0]=["CREATE TABLE speisekarte ( id INTEGER PRIMARY KEY, Menue INTEGER UNIQUE, ShortCut TEXT, Text_D TEXT, Text_C TEXT, Beschreibung_D TEXT, Beschreibung_C TEXT, Preis3 TEXT, Sort TEXT, Gruppe TEXT, SpkImageName TEXT, WarenGruppe TEXT, SabuSabu TEXT, IpadZeitZone TEXT );"]
WaitCursor True
Sql(DB,sqlList)
WaitCursor False
sqlList=[]
Rem now i parse the DATA
For i=0 To UBound(data.row)
activity=data.row[i]
M1 = activity.Menue
M2 = activity.Scout
M3 = activity.Text_D
M4 = activity.Text_C
M5 = activity.Beschreibung_D
M6 = activity.Beschreibung_C
M7 = activity.Preis3
M8 = activity.Sort
M9 = activity.Gruppe
M10 = M1 & ".png"
M11 = activity.WarenGruppe
M12 = activity.SabuSabu
M13 = activity.IpadZeitZone
Rem and iNSERT all datas into my table
sqlList[i] =["INSERT INTO speisekarte(Menue,ShortCut,Text_D,Text_C,Beschreibung_D,Beschreibung_C,Preis3,Sort,Gruppe,SpkImageName,WarenGruppe,SabuSabu,IpadZeitZone) VALUES('" & M1 &"','" & M2 &"','" & M3 &"','" & M4 &"','" & M5 &"','" & M6 &"','" & M7 &"','" & M8 &"','" & M9 &"','" & M10 & "','" & M11 & "','" & M12 & "','" & M13 & "' );", spkSucces, spkFail]
Next
WaitCursor True
Sql(DB,sqlList)
'Sleep 2000
Rem Now is all xml-datas saved into my Databank
End Function
Function spkSucces(transaction,results)
console.log("Save-Result : Speisekarte OK")
WaitCursor False
End Function
Function spkFail(transaction,results)
console.log("Save-Result : Speisekarte FAILED")
WaitCursor False
End Function