python minidom:'NoneType'对象没有来自url的属性'data'

时间:2016-12-16 12:39:09

标签: python xml parsing xml-parsing minidom

我正在尝试使用minidom用Python解析XML。当我从我的文件系统解析xml文件时,我没有任何问题。

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)   

我有错误消息 enter image description here

显然,它在路径和url中是相同的XML。感谢

2 个答案:

答案 0 :(得分:2)

urlopen函数返回HttpResponse个对象。您必须首先调用此对象的read()方法以获取响应的实际内容,并将其传递给minidom

minidom.parse(url.read())

答案 1 :(得分:1)

尝试使用新的urllib库,如下所示。 打印出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>