Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Abdera: Parse an atom document

Abdera provides parser api, to parse an atom document. Following step by step procedure explains how to parse an atom document using Abdera library.

Step 1: Get the instance of Abdera.
Abdera abdera = Abdera.getInstance();

Step 2: Get the parser instance from Abdera object
Parser parser = abdera.getParser();

Step 3: Connect to the url.
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Accept-Encoding", "gzip");
conn.connect();

Step 4: Get the input stream fro connection. If the response comes in gzip format, we should use GZIPInputStream, else InputStream is fine.

String contentEncoding = conn.getContentEncoding();
boolean isGzip = contentEncoding != null && contentEncoding.contains("gzip");
InputStream in = !isGzip ? conn.getInputStream() : new GZIPInputStream(conn.getInputStream())

Step 5: Parse the input stream and get the Document instance.
Document doc = parser.parse(in, url.toString());

Step 6:  Get the Feed object from Document object and use the methods provided by Feed object to get the data.

Document doc = parser.parse(in, url.toString());
Feed feed = doc.getRoot();

Following is the complete working application.

ParserDemo.java
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.zip.GZIPInputStream;

import org.apache.abdera.Abdera;
import org.apache.abdera.model.Document;
import org.apache.abdera.model.Entry;
import org.apache.abdera.model.Feed;
import org.apache.abdera.parser.ParseException;
import org.apache.abdera.parser.Parser;

public class ParserDemo {

public static void parseURL(String urlStr) {
HttpURLConnection conn = null;

try {
URL url = new URL(urlStr);
conn = (HttpURLConnection) url.openConnection();
conn.setRequestProperty("Accept-Encoding", "gzip");
conn.connect();

String contentEncoding = conn.getContentEncoding();
boolean isGzip = contentEncoding != null && contentEncoding.contains("gzip");

try (InputStream in = !isGzip ? conn.getInputStream() : new GZIPInputStream(conn.getInputStream())) {
Abdera abdera = Abdera.getInstance();
Parser parser = abdera.getParser();
DocumentFeed> doc = parser.parse(in, url.toString());
Feed feed = doc.getRoot();
System.out.println(feed.getTitle());
for (Entry entry : feed.getEntries()) {
System.out.println("\t" + entry.getTitle());
}
System.out.println(feed.getAuthor());
}

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (conn != null) {
conn.disconnect();
}
}

}

public static void main(String args[]) throws ParseException, IOException {
parseURL("http://self-learning-java-tutorial.blogspot.in/atom.xml");
}
}


Output
java tutorial : Blog to learn java programming
SWT: Scale widget
Commons CLI: OptionGroup: group mutually Exclusive options
Commons CLI: Parsing command line options
Commons CLI: Print command line argument in the order you inserted
Commons-CLI: Setting the compulsory options
Commons CLI: Add multiple arguments to an option
Commons CLI: Boolean options
Commons CLI : Options class
Commons-CLI Define options using builder
Commons-CLI: Set the display name for the argument
Commons CLI: Option: Specify single command line option
Apache Commons CLI Tutorial
SWT: Slider
C#: zeroMQ: Publish-subscribe model sockets
C#: Get the version of zeroMQ used in the application
zeroMQ: Hello World Application
zeroMQ C# Tutorial
SWT: TabFolder widget
SWT: Table widget
Client in C# and Server in Java
Two way communication in C# client and socket
C#: Socket Programming
SWT: Focus listeners
SWT: Text listeners
SWT: Mouse listeners
hari krishna[email protected]





Previous                                                 Next                                                 Home


This post first appeared on Java Tutorial : Blog To Learn Java Programming, please read the originial post: here

Share the post

Abdera: Parse an atom document

×

Subscribe to Java Tutorial : Blog To Learn Java Programming

Get updates delivered right to your inbox!

Thank you for your subscription

×