Python 第1行第0列XML.dom.minidom的XML解析错误

Python 第1行第0列XML.dom.minidom的XML解析错误,python,xml,minidom,Python,Xml,Minidom,我有一个Python脚本,大约一个月前就停止工作了。但在那之前,它可以完美地工作数月(如果不是数年的话)。下面提供了一个小型的独立的7行脚本来演示这个问题 我在XML.dom.minidom中遇到了一个XML解析问题,下面包含了错误消息。奇怪的是,如果我在web上使用XML验证器直接针对这个特定URL进行验证,这一切都很好。此外,我将页面源代码保存在Firefox或Chrome中,然后根据保存的XML文件进行验证,这也很好 由于错误发生在输入的最开始(第1行,第0列),如下所示,我想知道这是否是

我有一个Python脚本,大约一个月前就停止工作了。但在那之前,它可以完美地工作数月(如果不是数年的话)。下面提供了一个小型的独立的7行脚本来演示这个问题

我在XML.dom.minidom中遇到了一个XML解析问题,下面包含了错误消息。奇怪的是,如果我在web上使用XML验证器直接针对这个特定URL进行验证,这一切都很好。此外,我将页面源代码保存在Firefox或Chrome中,然后根据保存的XML文件进行验证,这也很好

由于错误发生在输入的最开始(第1行,第0列),如下所示,我想知道这是否是编码不匹配。但是,根据FireFox或Chrome中保存的页面源,开头有以下内容:

xml version=“1.0”encoding=“UTF-8”


=================================================
#!/usr/bin/env python
导入urllib2
从xml.dom.minidom导入解析字符串
fd=urllib2.urlopen('http://api.worldbank.org/countries')
data=fd.read()
fd.close()
dom=parseString(数据)
=================================================
=================================================
回溯(最近一次呼叫最后一次):
文件“/bugReport.py”,第9行,在
dom=parseString(数据)
文件“/usr/lib/python2.7/xml/dom/minidom.py”,第1931行,格式为parseString
返回expatbuilder.parseString(字符串)
文件“/usr/lib/python2.7/xml/dom/expatbuilder.py”,第940行,格式为parseString
return builder.parseString(字符串)
文件“/usr/lib/python2.7/xml/dom/expatbuilder.py”,第223行,格式为parseString
parser.Parse(字符串,True)
xml.parsers.expat.expat错误:格式不正确(无效令牌):第1行第0列
=================================================
我正在Ubuntu 13.10上运行Python 2.7.5+


谢谢。

即使urllib2无法处理它,也不会要求它,但仍会以一个响应。您必须手动压缩响应。请参阅:。

Vasily,非常感谢您的投入。事实上,内容编码是罪魁祸首。现在一切都好了。@SoaringEagle如果是这样,你可以将答案标记为正确。
<program>
=================================================
#!/usr/bin/env python

import urllib2
from xml.dom.minidom import parseString

fd = urllib2.urlopen('http://api.worldbank.org/countries')
data = fd.read()
fd.close()
dom = parseString(data)
=================================================


<error msg>
=================================================
Traceback (most recent call last):
  File "./bugReport.py", line 9, in <module>
    dom = parseString(data)
  File "/usr/lib/python2.7/xml/dom/minidom.py", line 1931, in parseString
    return expatbuilder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 940, in parseString
    return builder.parseString(string)
  File "/usr/lib/python2.7/xml/dom/expatbuilder.py", line 223, in parseString
    parser.Parse(string, True)
xml.parsers.expat.ExpatError: not well-formed (invalid token): line 1, column 0
=================================================