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

Schreibe einen Kommentar