6 de diciembre de 2010

lxml.etree.XMLSyntaxError: PCDATA invalid Char value

Al procesar un fichero xml con la librería lxml de Python, me he encontrado con el siguiente error en el parsing:

lxml.etree.XMLSyntaxError: PCDATA invalid Char value 19, line 3642, column 70

Provocado por un carácter extraño que se ha colado en los datos, representado por ^S

<Row>
    <idconcepto>3501</idconcepto>
    <ididioma>ITA</ididioma>
    <texto>Gestione ^S Amministrazione</texto>
    <patron>Gestione ^S Amministrazione</patron>
</Row>

Para evitar que salte este error, establecemos el parámetro recover del parser lxml a True.

dom = etree.parse(file_xml, \
      etree.XMLParser(ns_clean=True, recover=True))

Referencias: 
http://codespeak.net/lxml/parsing.html

No hay comentarios:

Publicar un comentario en la entrada