2013-04-17 8 views
0

Я пытаюсь разобрать это: http://www.codespot.blogspot.in/atom.xml?redirect=false&start-index=1&max-results=500Ошибка при разборе XML в Python

решаемой:

  1. Я хранить XML в файле для ElementTree, чтобы разобрать его. Как избежать этого и просто проанализировать ответ строки из запроса GET?

  2. Хотя я делаю это, чтобы получить все титулы, он по-прежнему не работает:

    f = open('output.xml','wb+') 
        f.write(r.content) 
        f.close() 
        tree = "" 
        with open('output.xml', 'rt') as f: 
         tree = ElementTree.parse(f) 
         print tree 
         root = tree.getroot() 
         for elem in tree.iter(): 
          print elem.tag, elem.attrib 
         for atype in tree.findall('title'): 
          print atype.contents 
    
+0

Объяснение «не работает». –

+0

Показывает пустой. Я хочу заголовки и содержание каждого сообщения. – Hick

+0

Чтобы проанализировать строку, а не файл, вы используете ElementTree.fromstring (string), но вам не нужно это делать. namit нашел правильное пространство имен для меня. :) –

ответ

2
import urllib2 
from xml.etree import cElementTree as ET 
conn = urllib2.urlopen("http://www.codespot.blogspot.in/atom.xml?redirect=false&start-index=1&max-results=500") 
myins=ET.parse(conn) 
for elem in myins.findall('{http://www.w3.org/2005/Atom}entry/{http://www.w3.org/2005/Atom}title'): 
    print elem.text 

или найти как заголовок и содержание ::

for elem in myins.findall('{http://www.w3.org/2005/Atom}entry'): 
    print elem.find('{http://www.w3.org/2005/Atom}title').text ## this will be the title 
    print elem.find('{http://www.w3.org/2005/Atom}content').text ## this will be the content 
Смежные вопросы