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

python minidom: 'NoneType' object has no attribute 'data' from url

我正在尝试使用 minidom 解析 XML 和 Python。当我从我的文件系统解析一个 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)   

我有一条错误消息

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

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

minidom.parse(url.read())

尝试使用新的 urllib 库,如下所示。 它打印出你好。是你想要的吗?

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>