1

我正在尝试使用 ROME 库解析 RSS/Atom 提要。我是 Java 新手,所以我不了解它的许多复杂之处。


  1. ROME 是否会自动使用其模块来处理遇到的不同提要,还是我必须要求它使用它们?如果是这样,任何方向。
  2. 如何找到正确的“来源”?我试图使用item.getSource(),但它让我很适合。我想我使用了错误的界面。一些方向将不胜感激。

这是我收集数据的主要内容。我注意到我遇到问题的两个方面,都围绕获取源的源信息。根据消息来源,我想要 CNN、FoxNews 或其他任何人,而不是作者。从我的阅读来看,.getSource()是正确的方法。

List<String> feedList = theFeeds.getFeeds();
List<FeedData> feedOutput = new ArrayList<FeedData>();
for (String sites : feedList ) {
  URL feedUrl = new URL(sites);
  SyndFeedInput input = new SyndFeedInput();
  SyndFeed feed = input.build(new XmlReader(feedUrl));
  List<SyndEntry> entries = feed.getEntries();
  for (SyndEntry item : entries){
    String title = item.getTitle();                 
    String link = item.getUri();
    Date date = item.getPublishedDate();
Problem here -->         **     SyndEntry source = item.getSource();
    String description;
    if (item.getDescription()== null){
      description = "";
    } else {
      description = item.getDescription().getValue();
    }
    String cleanDescription = description.replaceAll("\\<.*?>","").replaceAll("\\s+", " ");
    FeedData feedData = new FeedData(); 
    feedData.setTitle(title);
    feedData.setLink(link);
And Here -->        **      feedData.setSource(link);
    feedData.setDate(date);
    feedData.setDescription(cleanDescription);
    String preview =createPreview(cleanDescription);
    feedData.setPreview(preview);
    feedOutput.add(feedData);
    // lets print out my pieces.
    System.out.println("Title: " + title);
    System.out.println("Date: " + date);
    System.out.println("Text: " + cleanDescription);
    System.out.println("Preview: " + preview);
    System.out.println("*****");
  }
}
4

2 回答 2

1

getSource()绝对是错误的 - 它返回SyndFeed到有问题的条目所属的条目。也许你想要的是getContributors()

就模块而言,它们应该被自动选择。您甚至可以编写自己的并将其插入,如此处所述

于 2009-07-30T23:37:30.803 回答
0

在不使用 API 的情况下尝试从 URL 中对源进行正则表达式呢?

这是我的第一个想法,无论如何我检查了 RSS 标准化格式本身以了解此选项是否在此级别上实际可用,然后尝试向上跟踪其实现......

在 RSS 2.0 中,我找到了源元素,但它似乎在以前的规范版本中不存在 - 对我们来说不是好消息!

[ 是 1 的可选子元素

它的值是项目来自的 RSS 频道的名称,从它的 . 它有一个必需的属性 url,它链接到源的 XML 化。

于 2009-11-12T17:51:52.000 回答