lxml 在引发 XMLSyntaxError 之前仅加载单个网络实体
我正在编写代码来使用基于 Amazon 查询的 API,该 API 返回 XML,然后我希望使用 lxml 对其进行解析。我已经编写了几个可以完美加载 XML 并解析它的函数。
每个函数都使用以下方式加载 XML:
variable = lxml.etree.parse("http://...")
第一次运行时效果非常好。但是,如果我希望在运行 python 会话期间加载第二个 URL(无论是相同的 URL 还是不同的 URL),我会收到错误:(
lxml.etree.XMLSyntaxError: Attempt to load network entity http://...
当然,在这两种情况下,省略号都会被替换为其余的)
因此,由于某种原因,我似乎无法在正在运行的 python 会话中使用 parse 方法加载两个 XML 文档。
有谁知道我在这里可能做错了什么,或者有解决方案?
I am writing code to work with Amazon query based APIs, which return XML which I then wish to parse with lxml. I have written several functions which work perfectly to load the XML and parse it.
Each function loads the XML using:
variable = lxml.etree.parse("http://...")
This works perfectly, the FIRST time it is run. However, if I wish to load a second URL (be it the same one, or a different one) during the course of a running python session, I get the error:
lxml.etree.XMLSyntaxError: Attempt to load network entity http://...
(Of course, the ellipses are replaced in both cases with the rest of the URL.)
Therefore, for some reason, I appear to be unable to load two XML documents using the parse method in a running python session.
Does anyone know what I may be doing wrong here, or have a solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
已知未修复的错误。
使用 urllib2.urlopen() 获取类似文件的对象并将其传递给 lxml.etree.parse()
Known unfixed bug.
Use
urllib2.urlopen()
to get a file-like object and pass that tolxml.etree.parse()