2009-01-26 31 views
7

Estoy construyendo un lector de RSS basado en web simple en Python, pero tengo problemas para analizar el XML. Empecé probando algunas cosas en la línea de comando de Python.Todos los campos nodeValue son Ninguno al analizar 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 

He jugado un poco con esto durante un tiempo, pero el nodeValue de todo parece ser None. Sin embargo, si miras el XML, definitivamente hay valores allí. ¿Qué estoy haciendo mal?

Respuesta

16

Para obtener feeds RSS, debe probar la biblioteca Universal Feed Parser. Simplifica enormemente el manejo de los canales RSS.

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

Esta es la sintaxis que busca:

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

Tenga en cuenta que el valor del nodo es un descendiente lógica del propio nodo.

Cuestiones relacionadas