lxml仅在引发XMLSyntaxError之前加载单个网络实体

时间:2011-06-01 10:24:01

标签: python lxml

我正在编写代码来处理基于Amazon查询的API,它返回XML,然后我希望用lxml解析它。我写了几个函数,它们可以很好地加载XML并解析它。

每个函数使用以下函数加载XML:

variable = lxml.etree.parse("http://...")

这是完美的,第一次运行。但是,如果我希望在运行python会话期间加载第二个URL(无论是相同的URL还是不同的URL),我会收到错误:

lxml.etree.XMLSyntaxError: Attempt to load network entity http://...

(当然,在两种情况下都会用URL的其余部分替换省略号。)

因此,出于某种原因,我似乎无法在正在运行的python会话中使用parse方法加载两个XML文档。

有谁知道我在这里做错了什么,或者有解决方案?

1 个答案:

答案 0 :(得分:3)

Known unfixed bug

使用urllib2.urlopen()获取类文件对象并将其传递给lxml.etree.parse()