2011-06-07 85 views
2

請考慮下面的代碼:ExpatError:格式不正確(標記無效)

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_response:http://paste.pocoo.org/show/401984/

問題是,我可以不明白爲什麼第12行第28列(或常規破折號或45字符)與此錯誤相關聯。 可能Python試圖告訴我一些東西,但我看不到什麼

回答

2

雙破折號在註釋中無效(除結束它們之外)。有一個bug針對Expat提出的問題與你有同樣的問題,他們拒絕了與the relevant standard的鏈接。

+0

但是在評論中不包含雙重短劃線。不過,我用三個虛線註釋開始/結束替換,現在它通過。但!它會在第36行字符94上產生錯誤。我想我會手動解析這個響應(作爲一個字符串)。謝謝 – Vladan 2011-06-07 03:02:11

+0

順便說一句,錯誤的第36行字符94甚至被pastebin主機注意到,從提供的鏈接可以注意到:D – Vladan 2011-06-07 03:05:41

相關問題