使用urllib和minidom获取XML数据
问题描述:
我试图从XML服务中获取数据......这一个。使用urllib和minidom获取XML数据
http://xmlweather.vedur.is/?op_w=xml&type=forec&lang=is&view=xml&ids=1
我使用urrlib和minidom命名和我似乎无法使它发挥作用。我用minidom文件而不是url。
这是代码即时试图使用
xmlurl = 'http://xmlweather.vedur.is'
xmlpath = xmlurl + '?op_w=xml&type=forec&lang=is&view=xml&ids=' + str(location)
xmldoc = minidom.parse(urllib.urlopen(xmlpath))
谁能帮助我?
答
试试这个:
f = urllib.urlopen(xmlpath)
html = f.read()
xmldoc = minidom.parse(html)
答
下面应该工作(或者至少给你什么错误一个强烈的念头):
from xml.dom.minidom import parse
import urllib
xmlurl = 'http://xmlweather.vedur.is'
xmlpath = xmlurl + '?op_w=xml&type=forec&lang=is&view=xml&ids=' + str(location)
try:
xml = urllib.urlopen(xmlpath)
dom = parse(xml)
except e as Exception:
print(e)
答
我只是在做类似的事情,并遇到了你的问题。
在我的情况下,我认为minidom.parse被破坏,因为我得到语法错误。事实证明,语法错误是在我的xml文档中,但跟踪没有做到这一点。
如果您使用minidom.parse或minidom.parseString发生语法错误,请务必检查您的源文件。
答
parse()正在寻找一个文件,并且你给它一个字符串。还有一种名为类parsestring()
尝试:
from xml.dom.minidom import parseString
import urllib2
xml = urllib2.urlopen(xmlpath)
dom = parseString(xml.read())
适合我的应用程序托管在谷歌企业应用套件。 – 2010-07-28 10:38:29