Jeśli spróbuję przeanalizować uszkodzony XML, wyjątek pokazuje numer wiersza. Czy istnieje sposób na pokazanie kontekstu XML?Uzyskaj lepszy komunikat o błędzie analizy składni z ElementTree
Chcę zobaczyć tagi xml przed i po zepsutej części.
Przykład:
import xml.etree.ElementTree as ET
tree = ET.fromstring('<a><b></a>')
Wyjątek:
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
Coś takiego byłoby miło:
ParseError:
<a><b></a>
=====^
up-głosowania za pomocą 'err.position' nie wiedział o tym. –
@KobiK: Nie wiedziałem też, ale dobre narzędzie introspekcji, takie jak IPython, przydaje się, aby odkryć, co jest dostępne w obiektach takich jak 'err'. – unutbu
Dziękuję bardzo. Działa miło. – guettli