250 lines
9.9 KiB
HTML
250 lines
9.9 KiB
HTML
<!DOCTYPE html>
|
|
<!--
|
|
| Generated by Apache Maven Doxia at 2016-04-24
|
|
| Rendered using Apache Maven Fluido Skin 1.3.0
|
|
-->
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="author" content="mkurz" />
|
|
<meta name="Date-Creation-yyyymmdd" content="20110815" />
|
|
<meta name="Date-Revision-yyyymmdd" content="20160424" />
|
|
<meta http-equiv="Content-Language" content="en" />
|
|
<title>ROME - Rome v0.2 Tutorial, Using Rome to read a syndication feed</title>
|
|
<link rel="stylesheet" href="../../../css/apache-maven-fluido-1.3.0.min.css" />
|
|
<link rel="stylesheet" href="../../../css/site.css" />
|
|
<link rel="stylesheet" href="../../../css/print.css" media="print" />
|
|
|
|
|
|
<script type="text/javascript" src="../../../js/apache-maven-fluido-1.3.0.min.js"></script>
|
|
|
|
|
|
</head>
|
|
<body class="topBarDisabled">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<a href="http://github.com/rometools/rome">
|
|
<img style="position: absolute; top: 0; right: 0; border: 0; z-index: 10000;"
|
|
src="https://s3.amazonaws.com/github/ribbons/forkme_right_darkblue_121621.png"
|
|
alt="Fork me on GitHub">
|
|
</a>
|
|
|
|
|
|
|
|
|
|
<div class="container-fluid">
|
|
<div id="banner">
|
|
<div class="pull-left">
|
|
<a href="../../../index.html" id="bannerLeft">
|
|
<img src="../../../images/romelogo.png" alt="ROME"/>
|
|
</a>
|
|
</div>
|
|
<div class="pull-right"> </div>
|
|
<div class="clear"><hr/></div>
|
|
</div>
|
|
|
|
<div id="breadcrumbs">
|
|
<ul class="breadcrumb">
|
|
|
|
|
|
|
|
|
|
|
|
<li id="publishDate" class="pull-right">Last Published: 2016-04-24</li> <li class="divider pull-right">|</li>
|
|
<li id="projectVersion" class="pull-right">Version: 1.7.0-SNAPSHOT</li>
|
|
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
<div class="row-fluid">
|
|
<div id="leftColumn" class="span3">
|
|
<div class="well sidebar-nav">
|
|
|
|
|
|
<ul class="nav nav-list">
|
|
<li class="nav-header">Rome</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../index.html" title="Overview">
|
|
<i class="none"></i>
|
|
Overview</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../HowRomeWorks/index.html" title="How Rome Works">
|
|
<i class="icon-chevron-right"></i>
|
|
How Rome Works</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../RssAndAtOMUtilitiEsROMEV0.5AndAboveTutorialsAndArticles/index.html" title="Tutorials And Articles">
|
|
<i class="none"></i>
|
|
Tutorials And Articles</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../ROMEReleases/index.html" title="Releases">
|
|
<i class="icon-chevron-right"></i>
|
|
Releases</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../ROMEDevelopmentProposals/index.html" title="ROME Development Proposals">
|
|
<i class="none"></i>
|
|
ROME Development Proposals</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../Modules/index.html" title="Modules">
|
|
<i class="icon-chevron-right"></i>
|
|
Modules</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../Fetcher/index.html" title="Fetcher">
|
|
<i class="icon-chevron-right"></i>
|
|
Fetcher</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../Opml/index.html" title="OPML">
|
|
<i class="none"></i>
|
|
OPML</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../Propono/index.html" title="Propono">
|
|
<i class="none"></i>
|
|
Propono</a>
|
|
</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../Certiorem/index.html" title="Certiorem">
|
|
<i class="icon-chevron-right"></i>
|
|
Certiorem</a>
|
|
</li>
|
|
<li class="nav-header">Project Documentation</li>
|
|
|
|
<li>
|
|
|
|
<a href="../../../project-info.html" title="Project Information">
|
|
<i class="icon-chevron-right"></i>
|
|
Project Information</a>
|
|
</li>
|
|
</ul>
|
|
|
|
|
|
|
|
<hr class="divider" />
|
|
|
|
<div id="poweredBy">
|
|
<div class="clear"></div>
|
|
<div class="clear"></div>
|
|
<div class="clear"></div>
|
|
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy">
|
|
<img class="builtBy" alt="Built by Maven" src="../../../images/logos/maven-feather.png" />
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div id="bodyColumn" class="span9" >
|
|
|
|
<div class="section">
|
|
<h2>Rome v0.2 Tutorial, Using Rome to read a syndication feed<a name="Rome_v0.2_Tutorial_Using_Rome_to_read_a_syndication_feed"></a></h2>
|
|
<p><b>Software requirements:</b> J2SE 1.4+, JDOM B10 and Rome 0.2.</p>
|
|
<p>Rome represents syndication feeds (RSS and Atom) as instances of the com.rometools.rome.synd.SyndFeedI interface. The SyndFeedI interfaces and its properties follow the Java Bean patterns. The default implementations provided with Rome are all lightweight classes.</p>
|
|
<p>Rome includes parsers to process syndication feeds into SyndFeedI instances. The SyndFeedInput class handles the parsers using the correct one based on the syndication feed being processed. The developer does not need to worry about selecting the right parser for a syndication feed, the SyndFeedInput will take care of it by peeking at the syndication feed structure. All it takes to read a syndication feed using Rome are the following 2 lines of code:</p>
|
|
<div class="source">
|
|
<pre>
|
|
SyndFeedInput input = new SyndFeedInput();
|
|
SyndFeedI feed = input.build(feedUrl.openStream());
|
|
</pre></div>
|
|
<p>The first line creates a SyndFeedInput instance that will work with any syndication feed type (RSS and Atom versions). The second line instructs the SyndFeedInput to read the syndication feed from the InputStream of a URL pointing to the feed. The SyndFeedInput.build() method returns a SyndFeedI instance that can be easily processed.</p>
|
|
<p>The default SyndFeedI implementation has a detailed and clear toString() implementation. The following line just prints it to the application's output.</p>
|
|
<div class="source">
|
|
<pre>
|
|
System.out.println(feed);
|
|
</pre></div>
|
|
<p>Following is the full code for a Java application that reads a syndication feed and prints the SyndFeedI bean to the application's output.</p>
|
|
<div class="source">
|
|
<pre>
|
|
package com.rometools.rome.samples;
|
|
|
|
import java.net.URL;
|
|
import com.rometools.rome.feed.synd.SyndFeedI;
|
|
import com.rometools.rome.io.SyndFeedInput;
|
|
|
|
/**
|
|
* It Reads and prints any RSS/Atom feed type.
|
|
* <p>
|
|
* @author Alejandro Abdelnur
|
|
*
|
|
*/
|
|
public class FeedReader {
|
|
|
|
public static void main(String[] args) {
|
|
boolean ok = false;
|
|
if (args.length==1) {
|
|
try {
|
|
URL feedUrl = new URL(args[0]);
|
|
|
|
SyndFeedInput input = new SyndFeedInput();
|
|
SyndFeedI feed = input.build(feedUrl.openStream());
|
|
|
|
System.out.println(feed);
|
|
|
|
ok = true;
|
|
}
|
|
catch (Exception ex) {
|
|
ex.printStackTrace();
|
|
System.out.println("ERROR: "+ex.getMessage());
|
|
}
|
|
}
|
|
|
|
if (!ok) {
|
|
System.out.println();
|
|
System.out.println("FeedReader reads and prints any RSS/Atom feed type.");
|
|
System.out.println("The first parameter must be the URL of the feed to read.");
|
|
System.out.println();
|
|
}
|
|
}
|
|
|
|
}
|
|
</pre></div></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<hr/>
|
|
|
|
<footer>
|
|
<div class="container-fluid">
|
|
<div class="row span12">Copyright © 2016.
|
|
All Rights Reserved.
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</div>
|
|
</footer>
|
|
</body>
|
|
</html>
|