python - 使用 Python lxml 时出现错误 'failed to load external entity'

标签 python xml lxml elementtree

我正在尝试解析从 Web 检索到的 XML 文档,但在解析后出现此错误时崩溃:

': failed to load external entity "<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="GreenButtonDataStyleSheet.xslt"?>

这是下载的 XML 中的第二行。有没有办法阻止解析器尝试加载外部实体,或者另一种方法来解决这个问题?这是我到目前为止的代码:

import urllib2
import lxml.etree as etree

file = urllib2.urlopen("http://www.greenbuttondata.org/data/15MinLP_15Days.xml")
data = file.read()
file.close()

tree = etree.parse(data)

最佳答案

与 mzjn 所说的一致,如果您确实想将字符串传递给 etree.parse(),只需将其包装在 StringIO 对象中即可。

例子:

from lxml import etree
from StringIO import StringIO

myString = "<html><p>blah blah blah</p></html>"

tree = etree.parse(StringIO(myString))

此方法用于lxml documentation .

关于python - 使用 Python lxml 时出现错误 'failed to load external entity',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10457564/

相关文章:

python - 如何添加两个 python 字典,使不等于认为变为零?

python - 如何根据过滤条件有效地将列变为 0?

python - 使用 python 将 xml 数据转储到 csv 文件中的单元格中

python - PyQT/Windows/Pyinstaller (exe) - 名称错误 : global name 'QtGui' is not defined

python - 如何在 python 中使用 pandas 将多个关键字与数据框列值映射

java - 两个应用程序需要导出和导入需要包含数据和图像的单个文件,最佳文件类型?

c# - 如何从 xml 反序列化数据以及如何通过 xml 元素名称动态创建类?

python-3.x - 命名空间前缀无效

python - lxml xsi :schemaLocation namespace URI validation issue

python - 如何让 python request.get 等待几秒钟?