[python] Parsování XML - ExpatError: not well-formated

Michal Petrek michal.petrek na gmail.com
Pondělí Červenec 15 19:11:46 CEST 2013


On Monday, 15 July 2013 18:12:41 UTC+2, Honza Javorek  wrote:
> Ještě doplním, že lxml má stejné rozhraní jako ElementTree + něco navíc. API ElementTree by mělo být podmnožinou toho, co nabízí lxml - to co je navíc je popsané zde: http://lxml.de/api.html
> 
> 
> 
> H
> 
> 
> 
> 
> 2013/7/15 Honza Javorek <jan.j... na gmail.com>
> 
> 
> 
> 
> 
> 
> Ahoj,
> 
> pokud chceš parsovat XML v Pythonu, doporučuji knihovnu lxml, která je asi tím nejrychlejším a nejvybavenějším nástrojem, jaký máš pro tento úkol k dispozici. XML, které chceš parsovat, by mělo být validní - tzn. být přesně podle specifikace, bez chyb, musí být well-formed. Další věc je kódování souboru - pokud je XML uloženo v utf-8, je vše v pořádku a mělo by se ti povést jej přečíst. Pokud je soubor v jiném kódování, MUSÍ mít na začátku hlavičku (XML deklaraci) s definovaným kódováním, např.
> 
> 
> 
> <?xml version="1.0" encoding="winodws-1250" ?>
> Pokud tam hlavička není, předpokládá se UTF-8. Je-li v tomto nějaký rozkol, parser spadne na kolizních znacích.
> 
> 
> Jestli máš nevalidní XML a stejně ho potřebuješ zparsovat, tak to je pak už trochu vyšší dívčí - nejjednodušeji to jde řešit asi tak, že místo XML parseru použiješ nějaký HTML parser, který je benevolentnější (byť, pozor, v detailech není s XML parserem úplně zaměnitelný), např. http://lxml.de/lxmlhtml.html
> 
> 
> 
> 
> 
> Více ti asi bez znalosti toho XML neporadím.
> 
> 
> H
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 2013/7/15  <michal... na gmail.com>
> 
> 
> 
> 
> 
> Zdravím.
> 
> Píšu v pythonu parser XML. Při parsování některých XML však dojde k chybě:
> 
> xml.parsers.expat.ExpatError: not well-formed (invalid token): line 3270, column 529
> 
> 
> 
> Dočetl jsem se že se může jednat o problém pokud XML obsahuje unicode znaky. Už jsem ale nenašel žádné informace jak tento problém efektivně řešit.
> 
> 
> 
> Máte s tímto někdo zkušenosti ? Mohl by jste mi prosím někdo poradit jak bych toto mohl řešit?
> 
> 
> 
> Pro parsování používám ElementTree, python 2.7
> 
> 
> 
> Děkuji
> 
> MP
> 
> _______________________________________________
> 
> Python mailing list
> 
> Pyt... na py.cz
> 
> http://www.py.cz/mailman/listinfo/python

Ahoj,

děkuji za rady.


Další informace o konferenci Python