1

XML サービスからデータをフェッチしようとしています...これです。

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

私は urrlib と minidom を使用していますが、うまく動作しないようです。URLではなくファイルで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

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 に答える