[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