Все поля nodeValue равны None при разборе XML
Я создаю простую веб-программу для чтения RSS на Python, но у меня возникают проблемы с анализом XML. Я начал с того, что попробовал кое-что в командной строке Python.
>>> from xml.dom import minidom
>>> import urllib2
>>> url ='http://www.digg.com/rss/index.xml'
>>> xmldoc = minidom.parse(urllib2.urlopen(url))
>>> channelnode = xmldoc.getElementsByTagName("channel")
>>> channelnode = xmldoc.getElementsByTagName("channel")
>>> titlenode = channelnode[0].getElementsByTagName("title")
>>> print titlenode[0]
<DOM Element: title at 0xb37440>
>>> print titlenode[0].nodeValue
None
Я играл с этим некоторое время, но nodeValue
всего кажется None
, Тем не менее, если вы посмотрите на XML, там определенно есть значения. Что я делаю неправильно?
2 ответа
Решение
Для RSS-каналов вы должны попробовать библиотеку Universal Feed Parser. Это значительно упрощает обработку RSS-каналов.
import feedparser
d = feedparser.parse('http://www.digg.com/rss/index.xml')
title = d.channel.title
Это синтаксис, который вы ищете:
>>> print titlenode[0].firstChild.nodeValue
digg.com: Stories / Popular
Обратите внимание, что значение узла является логическим потомком самого узла.