ROME 0.8解析异常

时间:2011-12-07 01:35:13

标签: java rss xml-parsing rome

我正在尝试使用ROME v0.8(j2sdk1.4.2_07)解析RSS提要,但无论我使用哪个提要,它总是说同样的错误。

  

com.sun.syndication.io.ParsingFeedException:无效的XML:错误   第14行:元素类型" meta"必须通过匹配终止   结束标记""。

import java.net.URL;

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

public class RssTest {

    public static void main(String[] args) {

    try {

            System.out.println("starting...");
            URL feedUrl = new URL("http://www.abc.net.au/news/feed/51120/rss.xml");
            SyndFeedInput input = new SyndFeedInput();
            SyndFeed feed = input.build(new XmlReader(feedUrl));

            System.out.println("Feed Title: " + feed.getTitle());

        } catch (Exception ex) {
            System.out.println("Error: " + ex.getMessage());
        }
    }       
}

2 个答案:

答案 0 :(得分:2)

示例中的URL看起来像格式良好的XML,并且不包含任何meta标记,因此它应该由rome解析。未终止的meta标记会使某些内容返回HTML页面而非实际Feed。你的代理服务器可能需要一些特殊的登录吗?

答案 1 :(得分:0)

使用InputSource代替XmlReader

HttpURLConnection connection = (HttpURLConnection)url.openConnection();
InputStream is = connection.getInputStream();
InputSource source = new InputSource(is);
SyndFeedInput input = new SyndFeedInput();
feed = input.build(source);