Jim*_*Jim 4 python xml elementtree
我正在尝试解析我正在从网上下载的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
Run Code Online (Sandbox Code Playgroud)
当我尝试这样做时,我得到了两个错误之一
对于上面的示例网页AttributeError:'Response'对象没有属性'tag'
对于实际的XML站点,我正在查看AttributeError:'str'对象没有属性'tag'
但是,如果我只是将我已下载的XML复制并粘贴到.xml文件中并打开它可以正常工作而没有错误.谁会知道如何解决这些问题..?
Mar*_*ers 11
您需要解析响应主体,而不是响应对象:
root = ET.fromstring(XML.content) # no .getroot() call required
Run Code Online (Sandbox Code Playgroud)
或传入文件对象:
XML = requests.get(url, stream=True)
tree = ET.parse(XML.raw)
root = tree.getroot()
Run Code Online (Sandbox Code Playgroud)
如果流被压缩,后者可能会失败; 原始文件对象不会为您解压缩.