Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 元素树:Can';从网页获取XML时,无法构建根目录树_Python_Xml_Elementtree - Fatal编程技术网

Python 元素树:Can';从网页获取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

我正在尝试解析从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
当我尝试这样做时,会出现两个错误中的一个

对于上面的示例网页 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()
如果流被压缩,后者可能会失败;原始文件对象不会为您解压缩此文件