package com.cnblogs.android.core; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import org.xml.sax.helpers.DefaultHandler; import com.cnblogs.android.entity.*; import com.cnblogs.android.parser.RssItemsXmlParser; import com.cnblogs.android.utility.NetHelper; /** * Rss������ * * @author walkingp * */ public class RssItemHelper extends DefaultHandler { /** * ������ַ�õ����ĵ������б� * * @return */ public static List<RssItem> GetRssList(String url) { String dataString = NetHelper.getData(url, "UTF-8"); // NetHelper.GetContentFromUrl(url); if (dataString.equals("")) { return null; } ArrayList<RssItem> list = ParseString(dataString); return list; } /** * ���ַ���ת��ΪRss���� * * @return */ private static ArrayList<RssItem> ParseString(String dataString) { SAXParserFactory saxParserFactory = SAXParserFactory.newInstance(); ArrayList<RssItem> listRss = new ArrayList<RssItem>(); try { XMLReader xmlReader = saxParserFactory.newSAXParser() .getXMLReader(); RssItemsXmlParser handler = new RssItemsXmlParser(listRss); xmlReader.setContentHandler(handler); xmlReader.parse(new InputSource(new StringReader(dataString))); listRss = handler.GetRssItemList(); } catch (SAXException e) { e.printStackTrace(); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return listRss; } }