1

我正在尝试使用 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());
        }
    }       
}
4

2 回答 2

2

您示例中的 URL 看起来像格式正确的 XML,并且不包含任何meta标记,因此它应该可以被 rome 解析。未终止的meta标签听起来像是在返回 HTML 页面而不是实际的提要。您是否可能在需要一些特殊登录的代理服务器后面?

于 2011-12-07T10:49:27.167 回答
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);
于 2016-05-13T07:20:07.457 回答