使用urllib和minidom来获取XML数据

时间:2010-07-28 10:12:39

标签: python xml urllib minidom

我正在尝试从XML服务中获取数据......这个。

http://xmlweather.vedur.is/?op_w=xml&type=forec&lang=is&view=xml&ids=1

我正在使用urrlib和minidom,我似乎无法使其工作。我用minidom文件而不是网址。

这是我尝试使用的代码

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))

任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:4)

以下内容应该有效(或者至少可以让您对出现问题的方法有所了解):

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)

答案 1 :(得分:1)

parse()正在寻找一个文件,你给它一个字符串。还有另一个名为parsestring()的类

尝试:

from xml.dom.minidom import parseString
import urllib2
xml = urllib2.urlopen(xmlpath)
dom = parseString(xml.read())

答案 2 :(得分:0)

试试这个:

f = urllib.urlopen(xmlpath)
html = f.read()
xmldoc = minidom.parse(html)

答案 3 :(得分:0)

我刚刚做了类似的事情,并遇到了你的问题。

就我而言,我认为minidom.parse被破坏了,因为我遇到了语法错误。事实证明,语法错误在我的xml文档中 - 跟踪没有那么清楚。

如果您在使用minidom.parse或minidom.parseString时遇到语法错误,请务必检查您的源文件。