Python: Konvertierung von XML nach CSV-Datei
Habe ich eine XML Datei wie diese:
<hierachy>
<att>
<Order>1</Order>
<attval>Data</attval>
<children>
<att>
<Order>1</Order>
<attval>Studyval</attval>
</att>
<att>
<Order>2</Order>
<attval>Site</attval>
</att>
</children>
</att>
<att>
<Order>2</Order>
<attval>Info</attval>
<children>
<att>
<Order>1</Order>
<attval>age</attval>
</att>
<att>
<Order>2</Order>
<attval>gender</attval>
</att>
</children>
</att>
</hierachy>
Ich versuche es zu konvertieren zu einer CSV-Datei wie folgt:
Data,Studyval
Date,Site
Info,age
Info,gender
Mein problem ist, sowohl die Eltern und Kind sind die gleichen Namen- 'att' und 'attval'. Wie sage ich es in Python zu unterscheiden zwischen den beiden und gib mir die Ausgabe?
Habe ich versucht, dieses:
import xml.etree.cElementTree as ET
tree = ET.parse('input.xml')
rebase = tree.getroot()
list = []
for att in rebase.findall('att'):
name = att.find('attval').text
for each_att in att.findall('attval'):
try:
val = att.find('attval').text
print name, val
except AttributeError:
print name
und es druckte die gleichen Dinge zweimal.
InformationsquelleAutor pam | 2015-08-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie nicht die
findall
- Funktion, wie es Aussehen wird, für att-tags in den ganzen Baum. Einfach Durchlaufen Sie den Baum in der Reihenfolge von oben nach unten und ergreifen Sie die entsprechenden Elemente in Ihnen.Gibt:
InformationsquelleAutor Havok