我正在尝试解析从 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/