Nếu tôi cố gắng phân tích cú pháp XML bị hỏng, ngoại lệ sẽ hiển thị số dòng. Có cách nào để hiển thị ngữ cảnh XML không?Nhận thông báo lỗi phân tích cú pháp tốt hơn từ ElementTree
Tôi muốn xem các thẻ xml trước và sau phần bị hỏng.
Ví dụ:
import xml.etree.ElementTree as ET
tree = ET.fromstring('<a><b></a>')
Ngoại lệ:
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
Something như thế này sẽ được tốt đẹp:
ParseError:
<a><b></a>
=====^
up-bỏ phiếu cho sử dụng 'err.position' không biết về điều đó. –
@KobiK: Tôi cũng không biết, nhưng một công cụ nội tâm tốt, như IPython, có ích để khám phá những gì có sẵn trong các đối tượng như 'err'. – unutbu
Cảm ơn bạn rất nhiều. Hoạt động tốt đẹp. – guettli