2016-05-19 2 views
1

Ich bin neu in Python sowie XMl. Ich versuche, eine XML-Datei zu analysieren, die Werte und die Summe dieser Werte zu finden. Ich habe den Code und die Daten unten eingefügt.Parsing XML in Python für Zahlen

import xml.etree.ElementTree as ET 
data=''' 
<place> 
    <note>Test data</note> 
    <hospitals> 
    <doctor> 
     <name>John</name> 
     <count>97</count> 
    </doctor> 
    <doctor> 
     <name>Sam</name> 
     <count>97</count> 
    </doctor> 
    <doctor> 
     <name>Luke</name> 
     <count>90</count> 
    </doctor> 
    <doctor> 
     <name>Mark</name> 
     <count>90</count> 
    </doctor> 
    </hospitals> 
</place> ''' 

tree=ET.fromstring (data) 
for lines in tree.findall('place/hospitals/doctor'): 
    print lines.get('count'), lines.text 

Wenn ich den obigen Code ausführen, bekomme ich keine Ausgabe. Dann änderte ich den Code zu:

tree=ET.fromstring (data) 
print 'count:',tree.find('count').text 

und der Ausgang ist:

Traceback (most recent call last): 
    File "test2.py", line 26, in <module> 
    print 'count:',tree.find('count').text 
AttributeError: 'NoneType' object has no attribute 'text' 

Jede Hilfe Jungs sehr geschätzt wird. Danke

Antwort

0

Element.findall() findet nur Elemente mit einem Tag, die direkte Kinder des aktuellen Elements sind. Die Dokumentation für ElementTree ist here. So sind die Codebeispiele.

Vorerst versuchen Sie dies:

for line in tree.findall('./hospitals/doctor/count'): print line.text

Der obige Code nur die Zählungen druckt. Sie müssen den Code schreiben, um sie zusammenzufassen.

+0

Das hat funktioniert! Vielen Dank :) – sooraj