任何人都可以告诉我什么错误消息“解析中的行1182”意味着我在python中尝试解析和xml

时间:2016-10-11 17:30:06

标签: python xml parsing url elementtree

这是导致错误消息的代码:

import urllib
import xml.etree.ElementTree as ET

url = raw_input('Enter URL:')

urlhandle = urllib.urlopen(url)

data = urlhandle.read()

tree = ET.parse(data)

错误:

error msg screenshot

我是python的新手。我确实阅读了文档和一些教程,但显然我仍然做错了什么。我不相信它是xml文件本身,因为它对两个不同的xml文件执行此操作。

3 个答案:

答案 0 :(得分:1)

data是对XML内容的引用,但parse()函数需要文件名或file object作为参数。这就是发生错误的原因。

urlhandle是一个文件对象,因此tree = ET.parse(urlhandle)应该适合您。

答案 1 :(得分:1)

考虑使用ElementTree' fromstring()

import urllib
import xml.etree.ElementTree as ET

url = raw_input('Enter URL:')
# http://feeds.bbci.co.uk/news/rss.xml?edition=int

urlhandle = urllib.urlopen(url)    
data = urlhandle.read()

tree = ET.fromstring(data)

print ET.tostring(tree, encoding='utf8', method='xml')

答案 2 :(得分:0)

错误消息表明您的代码正在尝试打开文件,该文件的名称存储在变量源中。

它无法打开该文件(IOError),因为变量源包含一堆XML,而不是文件名。