net.i2p.router.news
Class NewsXMLParser

java.lang.Object
  extended by net.i2p.router.news.NewsXMLParser

public class NewsXMLParser
extends Object

Parse out the news.xml file which is in Atom format (RFC4287). We use the XML parser from the UPnP library.

Since:
0.9.17

Nested Class Summary
static class NewsXMLParser.XHTMLMode
          The action taken when encountering a non-whitelisted XHTML element or blacklisted attribute in the feed content.
 
Constructor Summary
NewsXMLParser(I2PAppContext ctx)
           
 
Method Summary
 List<NewsEntry> getEntries()
          The news entries.
 NewsMetadata getMetadata()
          The news metatdata.
static List<Node> getNodes(Node node, String name)
          Helper to get all Nodes matching the name
static void main(String[] args)
           
 Node parse(File file)
          Process the XML file.
 Node parse(InputStream in)
          Process the XML input stream.
 void setXHTMLMode(NewsXMLParser.XHTMLMode mode)
          Sets the action taken when encountering a non-whitelisted XHTML element in the feed content.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NewsXMLParser

public NewsXMLParser(I2PAppContext ctx)
Method Detail

setXHTMLMode

public void setXHTMLMode(NewsXMLParser.XHTMLMode mode)
Sets the action taken when encountering a non-whitelisted XHTML element in the feed content. Must be set before parse(). Default REMOVE_ELEMENT.


parse

public Node parse(File file)
           throws IOException
Process the XML file.

Parameters:
file - XML content only. Any su3 or gunzip handling must have already happened.
Returns:
the root node
Throws:
IOException - on any parse error

parse

public Node parse(InputStream in)
           throws IOException
Process the XML input stream.

Parameters:
in - XML content only. Any su3 or gunzip handling must have already happened.
Returns:
the root node
Throws:
IOException - on any parse error

getEntries

public List<NewsEntry> getEntries()
The news entries. Must call parse() first.

Returns:
sorted, newest first, null if parse failed

getMetadata

public NewsMetadata getMetadata()
The news metatdata. Must call parse() first.

Returns:
null if parse failed

getNodes

public static List<Node> getNodes(Node node,
                                  String name)
Helper to get all Nodes matching the name

Returns:
non-null

main

public static void main(String[] args)