2012-11-14 20 views
9

Uczę ElementTree w python. Wszystko wydaje się w porządku z wyjątkiem, gdy próbuję analizować plik xml z prefiksem:Python ElementTree parsowanie niezwiązanego błędu prefiksu

test.xml:

<?xml version="1.0"?> 
<abc:data> 
    <abc:country name="Liechtenstein" rank="1" year="2008"> 
    </abc:country> 
    <abc:country name="Singapore" rank="4" year="2011"> 
    </abc:country> 
    <abc:country name="Panama" rank="5" year="2011"> 
    </abc:country> 
</abc:data> 

Kiedy próbuję analizować xml:

import xml.etree.ElementTree as ET 
tree = ET.parse('test.xml') 

mam następujący błąd:

Czy muszę podać coś w celu parsowania pliku xml z prefiksem ?

+3

krótko brakuje brakującej przestrzeni nazw dla abc. spójrz na: http://stackoverflow.com/a/4999510/1107807 –

Odpowiedz

11

Dodaj przestrzeń nazw abc do pliku xml.

<?xml version="1.0"?> 
<abc:data xmlns:abc="your namespace"> 
+14

Ale co zrobić, gdy nie jest mój XML do zmiany, po prostu trzeba go przeanalizować? –

+1

Po drugie pytanie/komentarz z @Mark Allen! Mam ten sam problem. Oczywiście w każdym indywidualnym przypadku można edytować plik, ale mam wiele dużych (i niejednorodnych) plików xml. Na pewno jest sposób na obejście tego – dnh37

Powiązane problemy