Все поля 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

Обратите внимание, что значение узла является логическим потомком самого узла.

Другие вопросы по тегам