XML-Dateien einlesen
Verfasst: Dienstag 18. März 2014, 15:37
Guten Tag,
ich möchte gerne eine XML-Datei einlesen und habe dazu die Funktionen verwendet, die ich hier gefunden habe:
http://docs.python.org/2/library/xml.dom.html
Die Test-XML-Datei sieht so aus:
Ich möchte gerne die Werte auslesen, die in Zeit, Messwert1, Messwert2 und Messwert3 stehen. Ich muss mich dabei von Ebene zu Ebene durcharbeiten und habe dazu ein kleines Programm geschrieben:
Mit diesem Programm bekomme ich die Namen aller Child-Objekte von Messwerte angezeigt. Diese Elemente nenne ich Ebene2.
Die Child-Objekte Einleitung und Daten haben ihrerseits ja auch wieder Child-Objekte, die ich Ebene3 nennen möchte.
Die Print-Anweisung gibt eine hex-Adresse heraus:
Dort steht also eine Adresse. Die Print-Anweisung ist ja in der for-Schleife.
Jetzt muss ich irgendwie mit dieser Adresse auf das Element verweisen.
Ich habe dieses Programm dazu versucht:
Dieses Programm funktioniert so in dieser Form nicht. Ich habe versucht, nach dem Element in Ebene2 in Ebene1 zu suchen, um dann daraus die Namen zu bekommen. Ich weis leider nicht, wie ich es hinbekomme, dass ich darauf zugreifen kann.
Falls mir jemand von Euch helfen könnte, wuerde ich mich sehr darueber freuen.
ich möchte gerne eine XML-Datei einlesen und habe dazu die Funktionen verwendet, die ich hier gefunden habe:
http://docs.python.org/2/library/xml.dom.html
Die Test-XML-Datei sieht so aus:
Code: Alles auswählen
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Messwerte>
<Einleitung>
<Intro>Hallo</Intro>
<Suppe>Kartoffelsuppe</Suppe>
</Einleitung>
<Daten>
<Zeit>10:00</Zeit>
<Messwert1>345</Messwert1>
<Messwert2>234</Messwert2>
<Messwert3>1264</Messwert3>
</Daten>
<Daten>
<Zeit>11:00</Zeit>
<Messwert1>345</Messwert1>
<Messwert2>234</Messwert2>
<Messwert3>1264</Messwert3>
</Daten>
<Daten>
<Zeit>12:00</Zeit>
<Messwert1>345</Messwert1>
<Messwert2>234</Messwert2>
<Messwert3>1264</Messwert3>
</Daten>
<Daten>
<Zeit>13:00</Zeit>
<Messwert1>345</Messwert1>
<Messwert2>234</Messwert2>
<Messwert3>1264</Messwert3>
</Daten>
<Daten>
<Zeit>14:00</Zeit>
<Messwert1>345</Messwert1>
<Messwert2>234</Messwert2>
<Messwert3>1264</Messwert3>
</Daten>
</Messwerte>Code: Alles auswählen
#!/usr/bin/env python
from xml.dom import minidom
XMLDatei = minidom.parse ("test.xml")
Ebene1 = XMLDatei.getElementsByTagName("Messwerte")
Ebene2_Namen = Ebene1[0].childNodes
for Namen in Ebene2_Namen:
print NamenDie Child-Objekte Einleitung und Daten haben ihrerseits ja auch wieder Child-Objekte, die ich Ebene3 nennen möchte.
Die Print-Anweisung gibt eine hex-Adresse heraus:
Code: Alles auswählen
<DOM Element: Einleitung at 0x12334>
<DOM Element: Daten at 0x124555334>
.
.
.
Jetzt muss ich irgendwie mit dieser Adresse auf das Element verweisen.
Ich habe dieses Programm dazu versucht:
Code: Alles auswählen
#!/usr/bin/env python
from xml.dom import minidom
XMLDatei = minidom.parse ("test.xml")
Ebene1 = XMLDatei.getElementsByTagName("Messwerte")
Ebene2_Namen = Ebene1[0].childNodes
for Namen in Ebene2_Namen:
print Namen
Ebene2 = Ebene1[0].getElementsByTagName(Namen)
print "Ebene2: ---> " + str(Ebene2)
Ebene3_Namen = Ebene2.childNodes
print Ebene3_NamenFalls mir jemand von Euch helfen könnte, wuerde ich mich sehr darueber freuen.