Я искал везде, но не могу найти ничего, что могло бы решить мою проблему. Я довольно новичок в Python, поэтому, возможно, я что-то не понимаю. Ошибка, которую я продолжаю получать, это «AttributeError: экземпляр элемента не имеет атрибута« firstchild »»
# Imports
import urllib2
import re
from xml.dom import minidom
def main():
pass
if __name__ == '__main__':
main()
# Get RSS feed source
briefingRSS = minidom.parse(urllib2.urlopen('http://rss.briefing.com/Investor/RSS/UpgradesDowngrades.xml'))
# Find each Upgrade and Downgrade listed in XML file
channel = briefingRSS.getElementsByTagName("channel")[0]
items = channel.getElementsByTagName("item")
# Get info from each item
for item in items:
getTicker = item.getElementsByTagName("title")[0].firstchild.data
ticker = str(getTicker[1].split("<")[0])
print ticker
Редактировать: Хорошо, спасибо, что указали на C в firstchild. Но оказывается, программа выдает по одной букве в строке. Я пытаюсь захватить тикер, длина которого может достигать 5 символов. Как мне заставить его дать мне полный тикер?
Вот фрагмент текущего XML для элемента:
<image>
<url>http://rss.briefing.com/favicon.ico</url>
<title>Briefing.com - Upgrades Downgrades Calendar</title>
<link>
http://www.briefing.com/Investor/Public/Calendars/UpgradesDowngrades.htm
</link>
</image>
element = item.getElementsByTagName("title")[0]
, а затемprint dir(element)
сделают это. Затем вы увидите, что нет ни атрибута с именемfirstChild
, ни атрибута с именемfirstchild
. - person abarnert   schedule 14.11.2013