Java 罗马API解析RSS/Atom

Java 罗马API解析RSS/Atom,java,xml,parsing,atom-feed,Java,Xml,Parsing,Atom Feed,我正试图用罗马图书馆解析RSS/Atom提要。我是Java新手,所以我对它的许多复杂之处不太了解 ROME是否会在遇到不同的提要时自动使用其模块来处理它们,还是我必须要求它使用它们?如果是,请说明这方面的任何方向 如何找到正确的“来源”?我试图使用item.getSource(),但它让我感到不适。我想我使用了错误的界面。如果您能提供一些指导,我们将不胜感激 这是我收集数据的部分内容。 我注意到了我遇到问题的两个方面,都是围绕着获取提要的源信息。根据消息来源,我想要CNN,福克斯新闻,或者任何

我正试图用罗马图书馆解析RSS/Atom提要。我是Java新手,所以我对它的许多复杂之处不太了解


  • ROME是否会在遇到不同的提要时自动使用其模块来处理它们,还是我必须要求它使用它们?如果是,请说明这方面的任何方向
  • 如何找到正确的“来源”?我试图使用
    item.getSource()
    ,但它让我感到不适。我想我使用了错误的界面。如果您能提供一些指导,我们将不胜感激
  • 这是我收集数据的部分内容。 我注意到了我遇到问题的两个方面,都是围绕着获取提要的源信息。根据消息来源,我想要CNN,福克斯新闻,或者任何人,而不是作者。 从我的阅读判断,
    .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("*****");
      }
    }
    
    List feedList=offeeds.getFeeds();
    List feedOutput=新的ArrayList();
    对于(字符串站点:feedList){
    URL feedUrl=新URL(站点);
    SyndFeedInput=新的SyndFeedInput();
    SyndFeed feed=input.build(新的XmlReader(feedUrl));
    List entries=feed.getEntries();
    对于(附带项目:条目){
    String title=item.getTitle();
    String link=item.getUri();
    日期=item.getPublishedDate();
    这里的问题-->**SyndEntry source=item.getSource();
    字符串描述;
    if(item.getDescription()==null){
    description=“”;
    }否则{
    description=item.getDescription().getValue();
    }
    字符串cleanDescription=description.replaceAll(“\\”,“”)。replaceAll(“\\s+”,“”);
    FeedData FeedData=新的FeedData();
    feedData.setTitle(标题);
    feedData.setLink(link);
    这里-->**feedData.setSource(link);
    feedData.setDate(日期);
    feedData.setDescription(cleanDescription);
    字符串预览=createPreview(cleanDescription);
    feedData.setPreview(预览);
    feedOutput.add(feedData);
    //让我们把我的作品打印出来。
    System.out.println(“标题:”+标题);
    系统输出打印项次(“日期:+日期);
    System.out.println(“文本:”+cleansdescription);
    System.out.println(“预览:+Preview”);
    System.out.println(“*******”);
    }
    }
    
    getSource()
    肯定是错误的-它返回有问题的条目所属的
    SyndFeed
    。也许您想要的是
    getContributors()

    就模块而言,应自动选择它们。您甚至可以编写自己的代码并按所述插入它

    getSource()
    肯定是错误的-它返回所讨论的条目所属的
    SyndFeed
    。也许您想要的是
    getContributors()


    就模块而言,应自动选择它们。您甚至可以编写自己的代码并按所述插入它

    不使用API从URL尝试regex源代码怎么样

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

    在RSS2.0中,我找到了源元素,但是它似乎不存在于规范的早期版本中-这对我们来说不是好消息

    [是的可选子元素

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


    在不使用API的情况下从URL尝试regex源代码怎么样

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

    在RSS2.0中,我找到了源元素,但是它似乎不存在于规范的早期版本中-这对我们来说不是好消息

    [是的可选子元素

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


    很抱歉输出不好。我如何在这里获取格式?我可以重新发布代码,没有问题。很抱歉输出不好。我如何在这里获取格式?我可以重新发布代码,没有问题。那么我该怎么做才能获取rss的实际源。比如说,从yahoo获得的rss提要将为我提供yahoo、CNN或ESPN或其他什么?我搞不懂那部分。我不知道你的意思。是
    getAuthors()
    /
    getContributors())
    不给你想要的?你要找的字段在实际RSS中的位置在哪里?getAuthors是实际作者,而不是来源。比如说,CNN。它给了我记者的名字或,foxnews@foxnewsonline如果他们碰巧将其属性设置为那样。我想我可以迭代父提要并获得它。那么我该如何获得acrss的实际来源。比如说来自雅虎的rss提要会给我雅虎、CNN、ESPN或其他什么?我搞不懂那部分。我不确定你的意思。是
    getAuthors()
    /
    getContributors()
    不给你想要的?你要找的字段在实际RSS中的位置在哪里?getAuthors是实际作者,而不是来源。比如说,CNN。它给了我记者的名字或,foxnews@foxnewsonline我想我可以迭代父提要并得到它。