Ich möchte den letzten Eintrag der XML-Datei lesen und seinen Wert abrufen. Hier ist meine XML-DateiXML liest den letzten Eintrag aus der Datei in Python
<TestSuite>
<TestCase>
<name>tcname1</name>
<total>1</total>
<totalpass>0</totalpass>
<totalfail>0</totalfail>
<totalerror>1</totalerror>
</TestCase>
<TestCase>
<name>tcname2</name>
<total>1</total>
<totalpass>0</totalpass>
<totalfail>0</totalfail>
<totalerror>1</totalerror>
</TestCase>
</TestSuite>
ich bekommen die <total>
, <totalpass>
, <totalfail>
und <totalerror>
Wert in dem letzten Tag der Datei. Ich habe diesen Code ausprobiert, um das zu tun.
import xmltodict
with open(filename) as fd:
doc = xmltodict.parse(fd.read())
length=len(doc['TestSuite']['TestCase'])
tp=doc['TestSuite']['TestCase'][length-1]['totalpass']
tf=doc['TestSuite']['TestCase'][length-1]['totalfail']
te=doc['TestSuite']['TestCase'][length-1]['totalerror']
total=doc['TestSuite']['TestCase'][length-1]['total']
Dies funktioniert für die xml mit 2 oder mehr Testcase-Tags in XML-Dateien, aber nicht mit diesem Fehler für die Datei mit nur einem Testfall-Tag.
Traceback (most recent call last):
File "HTMLReportGenerationFromXML.py", line 52, in <module>
tp=doc['TestSuite']['TestCase'][length-1]['totalpass']
KeyError: 4 .
Da anstelle der Zählung, ist es die Untertag (etc Wert als Länge). Bitte helfen Sie mir, dieses Problem zu lösen.
Das funktioniert gut. Danke Mark –
Gern geschehen. Fühlen Sie sich frei, die Antwort, die Sie für am hilfreichsten halten, anzunehmen und/oder zu akzeptieren. –