thieumao

RssHandler.java - đọc RSS

Dec 4th, 2013
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.08 KB | None | 0 0
  1. package thieu.mao.utils;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import org.xml.sax.Attributes;
  7. import org.xml.sax.SAXException;
  8. import org.xml.sax.helpers.DefaultHandler;
  9.  
  10. import thieu.mao.models.RssItem;
  11.  
  12. public class RssHandler extends DefaultHandler {
  13.  
  14.     public static final String ITEM = "item";
  15.     public static final String TITLE = "title";
  16.     public static final String DESCRIPTION = "description";
  17.     public static final String LINK = "link";
  18.     public static final String DATE = "pubdate";
  19.  
  20.     private RssItem item;
  21.     private List<RssItem> itemList = new ArrayList<RssItem>();
  22.     private boolean started = false;
  23.     private StringBuilder sBuilder = new StringBuilder();
  24.  
  25.     @Override
  26.     public void characters(char[] ch, int start, int length)
  27.             throws SAXException {
  28.         // TODO Auto-generated method stub
  29.         super.characters(ch, start, length);
  30.         if (started && (sBuilder) != null) {
  31.             sBuilder.append(ch, start, length);
  32.         }
  33.     }
  34.  
  35.     @Override
  36.     public void endElement(String uri, String localName, String qName)
  37.             throws SAXException {
  38.         // TODO Auto-generated method stub
  39.         super.endElement(uri, localName, qName);
  40.         if (localName.equalsIgnoreCase(ITEM)) {
  41.             // item = new RssItem();
  42.             itemList.add(item);
  43.         } else if (started) {
  44.             if (localName.equalsIgnoreCase(TITLE)) {
  45.                 item.setTitle(sBuilder.toString().trim());
  46.             } else if (localName.equalsIgnoreCase(DESCRIPTION)) {
  47.                 item.setDescription(sBuilder.toString().trim());
  48.             } else if (localName.equalsIgnoreCase(LINK)) {
  49.                 item.setLink(sBuilder.toString().trim());
  50.             } else if (localName.equalsIgnoreCase(DATE)) {
  51.                 item.setDate(sBuilder.toString().trim());
  52.             }
  53.  
  54.             sBuilder = new StringBuilder();
  55.         }
  56.     }
  57.  
  58.     @Override
  59.     public void startElement(String uri, String localName, String qName,
  60.             Attributes attributes) throws SAXException {
  61.         // TODO Auto-generated method stub
  62.         super.startElement(uri, localName, qName, attributes);
  63.         if (localName.equalsIgnoreCase(ITEM)) {
  64.             item = new RssItem();
  65.             started = true;
  66.         }
  67.     }
  68.  
  69.     public List<RssItem> getItemList() {
  70.         return itemList;
  71.     }
  72.  
  73. }
Advertisement
Add Comment
Please, Sign In to add comment