2009-01-26 7 views
7

Ich baue einen einfachen webbasierten RSS-Reader in Python, aber ich habe Probleme beim Parsen des XML. Ich habe angefangen, indem ich ein paar Sachen in der Python-Kommandozeile ausprobiert habe.Alle nodeValue-Felder sind Keine beim Analysieren von XML

>>> 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 

Ich spielte mit diesem für eine Weile, aber die nodeValue alles scheint None zu sein. Wenn man sich das XML ansieht, gibt es definitiv Werte. Was mache ich falsch?

Antwort

16

Für RSS-Feeds sollten Sie die Universal Feed Parser-Bibliothek ausprobieren. Es vereinfacht die Handhabung von RSS-Feeds immens.

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

Dies ist die Syntax, die Sie für Ihre Suche:

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

Beachten Sie, dass der Knoten Wert ein logischer Abkömmling des Knotens selbst ist.