1

我正在尝试从 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))

谁能帮我?

4

4 回答 4

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)
于 2010-07-28T10:29:59.003 回答
1

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

尝试:

from xml.dom.minidom import parseString
import urllib2
xml = urllib2.urlopen(xmlpath)
dom = parseString(xml.read())
于 2013-09-26T19:38:57.360 回答
0

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

就我而言,我认为 minidom.parse 已损坏,因为我遇到了语法错误。事实证明,我的 xml 文档中存在语法错误 - 跟踪并没有说得很清楚。

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

于 2011-06-17T23:06:13.500 回答
0

尝试这个:

f = urllib.urlopen(xmlpath)
html = f.read()
xmldoc = minidom.parse(html)
于 2010-07-28T10:17:02.597 回答