解析XML时,所有nodeValue字段均为None

时间:2009-01-26 13:15:04

标签: python xml rss minidom

我正在用Python构建一个简单的基于Web的RSS阅读器,但是我在解析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 个答案:

答案 0 :(得分:17)

对于RSS源,您应该尝试使用Universal Feed Parser库。它简化了RSS提要的处理。

import feedparser
d = feedparser.parse('http://www.digg.com/rss/index.xml')
title = d.channel.title

答案 1 :(得分:10)

这是您正在寻找的语法:

>>> print titlenode[0].firstChild.nodeValue
digg.com: Stories / Popular

请注意,节点值是节点本身的逻辑后代。