Facebook
From Baby Mousedeer, 9 Years ago, written in Java.
Embed
Download Paste or View Raw
Hits: 542
  1. public class RSS_check {
  2.  
  3.         public RSS_check() {
  4.  
  5.         }
  6.  
  7.          private enum FeedType {
  8.                 item, title, description, link, pubdate;
  9.  
  10.         }
  11.  
  12.         public FeedList readRSS(String urlAddress) {
  13.                 FeedList feed = null;
  14.                 try {
  15.                         boolean isFeedHeader = true;
  16.  
  17.                         String description = "";
  18.                         String title = "";
  19.                         String link = "";
  20.                         String pubdate = "";
  21.  
  22.                         XMLInputFactory inputFactory = XMLInputFactory.newInstance();
  23.                         InputStream in = read(urlAddress);
  24.                         XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
  25.  
  26.                         while (eventReader.hasNext()) {
  27.                                 XMLEvent event = eventReader.nextEvent();
  28.                                 if (event.isStartElement()) {
  29.                                         String localPart = event.asStartElement().getName().getLocalPart();
  30.                                         FeedType st = FeedType.valueOf(localPart.toUpperCase());
  31.  
  32.                                         switch (st) {
  33.                                         case item:
  34.                                                 if (isFeedHeader) {
  35.                                                         isFeedHeader = false;
  36.                                                         feed = new FeedList(title, link, description, pubdate);
  37.                                                 }
  38.                                                 event = eventReader.nextEvent();
  39.                                                 break;
  40.                                         case title:
  41.                                                 title = getCharacterData(event, eventReader);
  42.                                                 break;
  43.                                         case description:
  44.                                                 description = getCharacterData(event, eventReader);
  45.                                                 break;
  46.                                         case link:
  47.                                                 link = getCharacterData(event, eventReader);
  48.                                                 break;
  49.                                         case pubdate:
  50.                                                 pubdate = getCharacterData(event, eventReader);
  51.                                                 break;
  52.                                         }
  53.                                 }
  54.                         }
  55.                 } catch (XMLStreamException e) {
  56.                         throw new RuntimeException(e);
  57.                 }
  58.                 return feed;
  59.         }
  60.  
  61.         private String getCharacterData(XMLEvent event, XMLEventReader eventReader)
  62.                         throws XMLStreamException {
  63.                 String result = "";
  64.                 event = eventReader.nextEvent();
  65.                 if (event instanceof Characters) {
  66.                         result = event.asCharacters().getData();
  67.                 }
  68.                 return result;
  69.         }
  70.  
  71.         private InputStream read(String _url) {
  72.                 try {
  73.                         URL rssUrl = new URL(_url);
  74.                         return rssUrl.openStream();
  75.                 } catch (IOException e) {
  76.                         throw new RuntimeException(e);
  77.                 }
  78.         }
  79. }