2011-12-23 6 views
0

Im пытается извлечь RSS-канал от new.google.com, Im используя работая с лучшими историями покормить прямо сейчас: http://news.google.com/news?ned=us&topic=h&output=rssRSS Feed Синтаксический

я могу получить и обработать его правильно, используя: http://pastebin.com/YDNPXyVK

Вот мой журнал того, что им получало: http://pastebin.com/a5HRsatX, кажется, когда есть апостроф, он останавливается ...

Благодарю вас за любую помощь, которую вы можете мне предложить.

ответ

0

попробуйте использовать this lib, чтобы разобрать корм xml, он отлично работает!

3

Возможно, вы захотите использовать библиотеку ROME. Вот пример:

package com.infosys.hanumant.rome; 

import java.net.URL; 
import java.util.Iterator; 

import com.sun.syndication.feed.synd.SyndEntry; 
import com.sun.syndication.feed.synd.SyndFeed; 
import com.sun.syndication.io.SyndFeedInput; 
import com.sun.syndication.io.XmlReader; 

/** 
* @author Hanumant Shikhare 
*/ 
public class Reader { 

    public static void main(String[] args) throws Exception { 

    URL url = new URL("http://example.com/feed.xml"); 
    XmlReader reader = null; 

    try { 
     reader = new XmlReader(url); 
     SyndFeed feed = new SyndFeedInput().build(reader); 
     System.out.println("Feed Title: "+ feed.getAuthor()); 

     for (Iterator i = feed.getEntries().iterator(); i.hasNext();) { 
     SyndEntry entry = (SyndEntry) i.next(); 
     System.out.println(entry.getTitle()); 
     } 
    } finally { 
     if (reader != null) 
     reader.close(); 
     } 
    } 
} 

Пример копируется из here.

+0

ROME даже совершит героические попытки иметь дело с недействительными RSS-каналами. Я думаю, что это стоит кривая обучения. – Bill