2016-12-16 6 views
1

私はminidomを使ってPythonでXMLを解析しようとしています。私がファイルシステムからxmlファイルを解析しているとき、私は何のプロンプトも持っていません。python minidom: 'NoneType'オブジェクトにはURLの属性 'data'がありません

doc = minidom.parse("PATH HERE") 
etiquetaDia = doc.getElementsByTagName("dia") 
for dia in etiquetaDia: 
    probPrecip = dia.getElementsByTagName("maxima")[0]  
    print(probPrecip.firstChild.data) 

しかし、私はこのコードのURLからXMLを解析しよう:

url = urllib2.urlopen('URL HERE') 
doc = minidom.parse(url) 
etiquetaDia = doc.getElementsByTagName("dia") 
for dia in etiquetaDia: 
    probPrecip = dia.getElementsByTagName("maxima")[0]  
    print(probPrecip.firstChild.data) 

私は明らかにそれがパスにして、URL内の同じXMLエラーメッセージ enter image description here

をだしています。ありがとう

+1

だから、あなたは何のライブラリを使用していますか? 'pip search minidom'を実行すると' DOMWrap(0.1) '、' enhancedminidom(0.2) '、' gxml(0.5) 'が得られます。 – Eddie

+0

@Eddie Python標準ライブラリにあります。https://docs.python.org/2/library/xml.dom.minidom.html – har07

+0

@Luis Manrique Cool、サンプルXMLファイルも投稿できますか? – Eddie

答えて

1

にそれを渡す必要があります。 Helloを表示します。それはあなたが欲しいものですか?

from xml.dom import minidom 
from urllib import request 

url = request.urlopen('http://localhost:8000/sample.xml') 
doc = minidom.parse(url) 
etiquetaDia = doc.getElementsByTagName("dia") 
for dia in etiquetaDia: 
    probPrecip = dia.getElementsByTagName("maxima")[0] 
    print(probPrecip.firstChild.data) 

サンプルXML

<?xml version="1.0" encoding="UTF-8"?> 
<dia> 
    <maxima>Hello</maxima> 
</dia> 
+0

あなたのXMLファイルがあるフォルダからテストHTTPサーバーを実行する 'python3 -m http.server'を実行します – Eddie

+0

私はこのオプションを試していますが、私は要求をインポートする新しい問題があります。私はそれに取り組んでいる –

+0

'urllib'はフォルダで、' request'はpythonファイルです。多分あなたは何かを見逃しているでしょう。 'import urllib'と' print(urllib .__ path __) 'を試してみると、urllibフォルダは'/home/eddie/.pyenv/versions/3.5.2/lib/python3.5/urllib'にあります。そのフォルダの中に 'request.py'というファイルがあります。 Python Virtual Environmentをまだ使用していない場合は、それを使用することを強くお勧めします。最後に – Eddie

1

urlopen関数は、HttpResponseオブジェクトを返します。あなたは最初の代わりに、以下のような新しいurllibはライブラリを試してみてください応答の実際の内容を取得するには、このオブジェクトのread()メソッドを呼び出して、minidom

minidom.parse(url.read()) 
+0

これはフォーマットなしで完全なファイルのようにxmlファイルを読み込みます。私はそれを使用することができません –

関連する問題