ExpatError: 格式不正确(无效标记)

2 投票
1 回答
11548 浏览
提问于 2025-04-16 19:05

请看这段代码:

import xml.etree.ElementTree as ET
import urllib

XML_response = urllib.urlopen('http://www.navlost.eu/aero/metar/?icao=LWSK&dt0=2011-05-03+12%3A00%3A00&c=1&rt=metar').read()
tree = ET.fromstring(XML_response)

这段代码出现了这个错误:

---------------------------------------------------------------------------
ExpatError                                Traceback (most recent call last)
C:\Python26\<ipython-input-82-64c111a1ce76> in <module>()
----> 1 tree = ET.fromstring(XML_response)

C:\Python26\lib\xml\etree\ElementTree.pyc in XML(text)
    961 def XML(text):
    962     parser = XMLTreeBuilder()
--> 963     parser.feed(text)
    964     return parser.close()
    965 

C:\Python26\lib\xml\etree\ElementTree.pyc in feed(self, data)
   1243 
   1244     def feed(self, data):
-> 1245         self._parser.Parse(data, 0)
   1246 
   1247     ##


**ExpatError: not well-formed (invalid token): line 12, column 28**

这是 XML 响应: http://paste.pocoo.org/show/401984/

问题是我看不出为什么第 12 行,第 28 列(或者说是普通的短横线,ASCII 码是 45)会和这个错误有关。

可能是 Python 想告诉我什么,但我看不出来。

1 个回答

2

双破折号在注释中是无效的(除了用于结束注释的时候)。有一个关于这个问题的错误报告被提交给Expat,他们拒绝了这个报告,并提供了一个链接指向相关标准

撰写回答