Se si tenta di analizzare un XML interrotto, l'eccezione mostra il numero di riga. C'è un modo per mostrare il contesto XML?Ottenere un migliore messaggio di errore di analisi da ElementTree
Voglio vedere i tag xml prima e dopo la parte rotta.
Esempio:
import xml.etree.ElementTree as ET
tree = ET.fromstring('<a><b></a>')
Eccezione:
Traceback (most recent call last):
File "tmp/foo.py", line 2, in <module>
tree = ET.fromstring('<a><b></a>')
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1300, in XML
parser.feed(text)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1642, in feed
self._raiseerror(v)
File "/usr/lib/python2.7/xml/etree/ElementTree.py", line 1506, in _raiseerror
raise err
xml.etree.ElementTree.ParseError: mismatched tag: line 1, column 8
Qualcosa di simile sarebbe bello:
ParseError:
<a><b></a>
=====^
up-voto per l'utilizzo di 'err.position' non saperlo. –
@KobiK: Non lo sapevo neanch'io, ma un buon strumento di introspezione, come IPython, è utile per scoprire cosa è disponibile in oggetti come 'err'. – unutbu
Grazie mille. Funziona bene. – guettli