Parsing große XML-Datei mit Python - etree.parse Fehler

8

Versuchen Sie, die folgende Python-Datei mit der Funktion lxml.etree.iterparse zu analysieren.

"sampleoutput.xml"

%Vor%

Ich habe den Code aus Parsing Large XML-Datei mit Python ausprobiert lxml und Iterparse

vor dem Aufruf von etree.iterparse (MYFILE) habe ich MYFILE = geöffnet ("/ Users / eric / Desktop / wikipedia_map / sampleoutput.xml", "r")

Aber es erscheint der folgende Fehler

%Vor%

irgendwelche Ideen? Danke!

    
ejang 09.07.2012, 04:25
quelle

2 Antworten

7

Das Problem ist, dass XML nicht gut formatiert ist, wenn es nicht genau ein Top-Level-Tag hat. Sie können Ihr Beispiel korrigieren, indem Sie das gesamte Dokument in <items></items> -Tags einschließen. Außerdem benötigen Sie die <desc/> -Tags, um die von Ihnen verwendete Abfrage ( description ) zu finden.

Das folgende Dokument erzeugt korrekte Ergebnisse mit Ihrem vorhandenen Code:

%Vor%     
sblom 09.07.2012, 05:01
quelle
3

Soweit ich weiß, erwartet xml.etree.ElementTree normalerweise, dass die XML-Datei ein "root" -Element enthält, d. h. ein XML-Tag, das die gesamte Dokumentstruktur umschließt. Von der Fehlermeldung, die Sie gepostet haben, würde ich annehmen, dass dies auch das Problem ist:

"Zeile 5" bezieht sich auf das zweite <item> -Tag, also bezweifle ich, dass Python beklagt, dass weitere Daten folgen, nachdem das angenommene Wurzelelement (d. h. das erste <item> -Tag) geschlossen wurde.

    
quelle

Tags und Links