An einem gewissen Punkt in meiner XML-Datei Ich habe Beiträger mitWie ignoriert man bestimmte Tags in XML-Dateien?
<revision>
<id>1</id>
<timestamp>2012-10-25T15:50:18Z</timestamp>
<contributor>
<ip>127.0.0.1</ip>
</contributor>
</revision>
An einem anderen Punkt in meiner XML-Datei haben Beiträger mit
<revision>
<id>2</id>
<parentid>1</parentid>
<timestamp>2012-10-26T20:13:56Z</timestamp>
<contributor>
<username>Reedy</username>
<id>2</id>
</contributor>
</revision>
ich einen Python-Skript geschrieben, das durch die XML-Dateien analysieren wird und Gib alle benötigten Tags in eine Ausgabedatei zurück. Aber unter meinem Mitarbeiter hatte ich zwei verschiedene Dinge: IP und Username, ID. Ich möchte Ip ignorieren und möchte nur Benutzername und ID in meine Ausgabedatei schreiben. Wenn beide mir einen Schlüssel Fehler wie KeyError bekommen: ‚username‘
gut ist mein Code
import xmltodict
with open('path to xml file') as xml_file:
dic_xml = xmltodict.parse(xml_file.read())
page = dic_xml['mediawiki']['page']
data = list()
for rev in page['revision']:
my_string = ""
my_string += " " + "username:" + dict(rev['contributor'])['username']
my_string += " " + "userid:" + dict(rev['contributor'])['id']
my_string += "\n"
data.append(my_string)
with open('output', 'w') as writingFile:
for i in data:
writingFile.write(i)
Verwenden Sie bitte einen vorhandenen [Python XML-Parser] (http://stackoverflow.com/questions/1912434/how-do-i-parse-xml-in-python), anstatt Ihren eigenen zu schreiben. Es ist kampferprobt und funktioniert nachweislich für mehr Menschen als nur für dich. Und außerdem ist diese Frage ohne den Code, den Sie für den Parser geschrieben haben, nicht zu beantworten. –