ich stehe gerade etwas auf dem Schlauch, ich bin beim Thema XML und Python noch nicht so auf dem Stan der Dinge. Zu meinem Problem.
Ich versuche eine XML Datei so zu zerlegen, dass ich die Werte dann in eine Datenbank schreiben kann.
Hier die Struktur der XML Datei:
Code: Alles auswählen
<?xml version="1.0"?>
<dat from="2013-06-10 14:19:00" to="2013-06-10 14:19:59" qdate="2013-06-10 14:19:48">
<dl id="12345678" Off="1" saving="1" tstamp="2013-06-10 14:19:00">
<device type="iv" key="1" id="123456789">
<mv type="AA" value="123"/>
<mv type="BB" value="234"/>
<mv type="CC" value="567"/>
<mv type="DD" value="890"/>
</device>
<device type="iv" key="2" id="2468123455">
<mv type="AA" value="123"/>
<mv type="BB" value="234"/>
<mv type="CC" value="567"/>
<mv type="DD" value="890"/>
</device>
</dl>
<dl id="24689765" Off="1" saving="1" tstamp="2013-06-10 14:19:00">
<device type="iv" key="1" id="123456789">
<mv type="AA" value="123"/>
<mv type="BB" value="234"/>
<mv type="CC" value="567"/>
<mv type="DD" value="890"/>
</device>
<device type="iv" key="2" id="2468123455">
<mv type="AA" value="123"/>
<mv type="BB" value="234"/>
<mv type="CC" value="567"/>
<mv type="DD" value="890"/>
</device>
</dl>
</dat>
Code: Alles auswählen
mport urllib.request
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
xmlload = urllib.request.urlopen('http:xxxx')
tree = ET.parse(xmlload)
root = tree.getroot()
for child_dl in root:
dl_id = child_dl.get('id')
dl_timestamp = child_dl.get('timestamp')
for child_device in child_dl:
device_type = child_device.get('type')
device_id = child_device.get('id')
for child_mv in child_device:
mv_type = child_mv.get('type')
mv_value = child_mv.get('value')
if mv_type == ('AA'):
U_DC = mv_value
elif mv_type == ('BB'):
I_DC = mv_value
print (dl_timestamp , "," , device_id , "," , device_type , "," , AA , "," , BB)
Ich glaube ich mache hier einen grundsätzlichen Denkfehler. Was denkt Ihr gehe ich das Ganze falsch an, oder könnte ich mir zum Beispiel auch ein Array bilden mit den Bezeichnungen und den Werten hinter "mv"?
Vielen Dank für Eure Hilfe