Verarbeitung von XML mit Python

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lida
User
Beiträge: 2
Registriert: Dienstag 8. Januar 2013, 16:54

Hallo,
ich moechte XML-Daten mit Python verarbeiten. Konkret geht es dabei um die Erstellung einer Statistik.
Thema:
Vearbeitung von XML-Daten mit Python zwecks Erstellung einer Statistik
Beispiel fuer eine Aufgabe, die mit Python geloest werden soll:
- Wie oft kommt ein bestimmtes Tag in der XML-Datei vor?
Frage:
Welcher XML-Parser bzw. welche Bibliothke eignet sich am besten fuer diese Aufgabe? Zur Auswahl stehen SAX, DOM und ElementTree.
Anhand der gewonnenen Informationen aus dem Internet habe ich mich fuer DOM entschieden. Allerdings wird hier (http://de.wikibooks.org/wiki/Python_unter_Linux:_XML) von der Verwendung von DOM abgeraten. Als absoluter Neuling bin ich verunsichert, ob DOM das richtige fuer den o.g. Zweck ist.

Ich hoffe, ich habe meine Frage eindeutig genug formuliert und danke schon mal fuer Hilfestellung(en).
Lida
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@Lida: DOM ist auf jeden Fall nicht erste Wahl bei XML & Python.
Es ist langsam, umständlich und nicht sehr intuitiv.

ElementTree ist für die allermeisten Anwendungen genau das Richtige.
Jedoch für sehr sehr große XML-Dateien (>1GB) ist es sicher lohnenswert SAX bzw. den Stream-Reader
von ElementTree oder expat anzuschauen, da dann nicht die gesamte Datei auf einmal im Speicher liegt.
Benutzeravatar
noisefloor
User
Beiträge: 3856
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Vearbeitung von XML-Daten mit Python zwecks Erstellung einer Statistik
Ich habe (hatte) einen ähnlichen Anwendungsfall und das klappt in der Tat ziemlich gut mit ElementTree aus der Standardbibliothek.

Gruß, noisefloor
Lida
User
Beiträge: 2
Registriert: Dienstag 8. Januar 2013, 16:54

Euch allen vielen herzlichen Dank fuer eure Antworten!
Gruss,
Lida
Antworten