Python 元素树:Can';从网页获取XML时,无法构建根目录树
我正在尝试解析从web下载的XML页面Python 元素树:Can';从网页获取XML时,无法构建根目录树,python,xml,elementtree,Python,Xml,Elementtree,我正在尝试解析从web下载的XML页面 import requests url = "http://www.w3schools.com/xml/cd_catalog.xml" XML = requests.get(url) print XML.content tree = ET.ElementTree(XML) root = tree.getroot() print root.tag, root.attrib 当我尝试这样做时,会出现两个错误中的一个 对于上面的示例网页 Attribute
import requests
url = "http://www.w3schools.com/xml/cd_catalog.xml"
XML = requests.get(url)
print XML.content
tree = ET.ElementTree(XML)
root = tree.getroot()
print root.tag, root.attrib
当我尝试这样做时,会出现两个错误中的一个
对于上面的示例网页
AttributeError:“响应”对象没有属性“标记”
对于我正在查看的实际XML站点
AttributeError:“str”对象没有属性“tag”
但是,如果我只是将下载的XML复制并粘贴到一个.XML文件中,然后打开它,就可以正常工作,不会出现错误。有人知道如何解决这些问题吗?您需要解析响应体,而不是响应对象:
root = ET.fromstring(XML.content) # no .getroot() call required
或传入文件对象:
XML = requests.get(url, stream=True)
tree = ET.parse(XML.raw)
root = tree.getroot()
如果流被压缩,后者可能会失败;原始文件对象不会为您解压缩此文件