2017-03-10 10 views
0

Ich lerne gerade Python auf Version 2.6.4 Das erste, was ich versuche zu versuchen, nur den Wert eines Attributs (BestellungNr) zu analysieren und diese auszudrucken. Zweitens versuche ich durch das XML zu analysieren und einen Wert eines Attributs wie 10238 aus Attribut "orderno" zu finden, aber das gesamte Element als eine CSV-Zeile wie "10238,1, Hasselblad 501 CM Körper, 2355" Any auszudrucken Hinweise, wie es geht?Python XML zu csv

from xml.etree import ElementTree 
tree = ElementTree.parse('sample.xml') 
root = tree.getroot() 

for item in root: 
    first = item.find('orderno').text 
    print first 

Daten:

<item> 
<orderno>10238</orderno> 
<count>1</count> 
<name>Hasselblad 501 CM body</name> 
<price>2355</price> 
</item> 
<item> 
<orderno>20032</orderno> 
<count>1</count> 
<name>Carl Zeiss Planar Lens CB 2.8/80 mm</name> 
<price>1233</price> 
</item> 
<item> 
<orderno>30212</orderno> 
<count>1</count> 
<name>Roll Film 120 Magazine A12</name> 
<price>917</price> 
</item> 
+0

Es wäre einfacher, wenn die Daten "" Tag –

+0

hätten, das nur ein Beispiel wäre. Ich habe die sample.xml bearbeitet. – dermont

+0

um, wenn das Python ist, dann ist es dringend Code Einrückung, aktuelle verwirrt mich nur – Zharf

Antwort

1

Sie müssen grundsätzlich durch alle Unterelemente zu durchlaufen. Hier habe ich die Unterelemente durch Listenverständnis durchgespielt und die Liste mit Komma verbunden!

from xml.etree import ElementTree 
tree = ElementTree.parse('sample.xml') 
root = tree.getroot() 

for item in root: 
    print ','.join([sub_item.text for sub_item in item]) 

Beispielausgabe:

10238,1,Hasselblad 501 CM body,2355 
20032,1,Carl Zeiss Planar Lens CB 2.8/80 mm,1233 
30212,1,Roll Film 120 Magazine A12,917 

Hoffe, es hilft!

+0

Funktioniert perfekt! – dermont