XML String Parsen mit xml.dom.minidom
Verfasst: Freitag 18. Februar 2011, 14:50
Hi zusammen
Ich bin am verzweifeln. Ich bin an einem Python Projekt und komme einfach nicht weiter und mein Chef ist in nem Meeting und ich sollte das so schnell wie möglich erledigt haben.
Und zwar geht es darum automatisierte testScripts mit unittest zu schreiben.
Nun soll ich einen xml String auswerten und in ein 2d array zu schreiben. Das ganze muss mit der xml bibliothek passieren.
Ich habe einen XML String, der folgende form hat, nur etwas länger:
nun sollten die Daten in den outputCircuits, AppOutputSignal und IsCmdAlarmGenerated in ein 2d-Array geschrieben werden. Nur habe ich keine Ahnung wie ich das anstelle.
Könnt Ihr mir sagen wie ich den Wert der childNodes von OutputCircuitTableRow herauslösen kann?
Bisher bin ich so weit (Ich kann nun schon auf die 3 gewünschten Nodes zugreifen):
Könnt Ihr mir erklären wie ich den Wert zwischen den <> und </> herausbekomme?
evtl. ein Beispiel mit print oder in einer Variable speichern.
Danke für eure Hilfe
Ich bin am verzweifeln. Ich bin an einem Python Projekt und komme einfach nicht weiter und mein Chef ist in nem Meeting und ich sollte das so schnell wie möglich erledigt haben.
Und zwar geht es darum automatisierte testScripts mit unittest zu schreiben.
Nun soll ich einen xml String auswerten und in ein 2d array zu schreiben. Das ganze muss mit der xml bibliothek passieren.
Ich habe einen XML String, der folgende form hat, nur etwas länger:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<operation name="get" path="/unit-15/status/outputcircuittable">
<execution status="success" />
<OutputCircuitTable>
<OutputCircuitTableRow>
<OutputCircuit>tpo-1</OutputCircuit>
<AppOutputSignal>cmd-1</AppOutputSignal>
<IsCmdAlarmGenerated>false</IsCmdAlarmGenerated>
</OutputCircuitTableRow>
<OutputCircuitTableRow>
<OutputCircuit>tpo-2</OutputCircuit>
<AppOutputSignal>cmd-2</AppOutputSignal>
<IsCmdAlarmGenerated>false</IsCmdAlarmGenerated>
</OutputCircuitTableRow>
</OutputCircuitTable>
</operation>
</response>Könnt Ihr mir sagen wie ich den Wert der childNodes von OutputCircuitTableRow herauslösen kann?
Bisher bin ich so weit (Ich kann nun schon auf die 3 gewünschten Nodes zugreifen):
Code: Alles auswählen
xml = xml.dom.minidom.parseString(xmlString)
nodeResponse = xml.childNodes[0]
nodeOperation = nodeResponse.childNodes[1]
nodeTable = nodeOperation.childNode[3]
nodeTableRow = nodeTable.childNodes[1]
for node in nodeTableRow.childNodes:
#Hier sollten dann die 3 childNodes von der <OutputCircuitTableRow> in ein array geschrieben werdenevtl. ein Beispiel mit print oder in einer Variable speichern.
Danke für eure Hilfe