例子中使用的种子是:http://news.163.com/special/00011K6L/rss_newstop.xml
一定要记得在Manifest里面加入Internet访问的允许
XMLParseActivity.java
package com.zeph.android.xml; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.StringReader; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.InputSource; import org.xml.sax.SAXException; import org.xml.sax.XMLReader; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class XMLParseActivity extends Activity { private Button XmlParseButton; private String XmlSourceStr; private MyXmlHandler myXmlHandler; private List<RssNews> newsList; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); XmlParseButton = (Button) findViewById(R.id.XMLparseButton); XmlParseButton.setOnClickListener(new MyButtonClickListener()); newsList = new ArrayList<RssNews>(100); myXmlHandler = new MyXmlHandler(newsList); } public void XmlConnection(String urlStr) { URL url = null; try { url = new URL(urlStr); } catch (MalformedURLException e) { e.printStackTrace(); } if (url != null) { try { HttpURLConnection urlConnection = (HttpURLConnection) url .openConnection(); InputStreamReader isReader = new InputStreamReader( urlConnection.getInputStream(), "GBK"); BufferedReader br = new BufferedReader(isReader); StringBuffer sb = new StringBuffer(); String line = null; while ((line = br.readLine()) != null) { sb.append(line); } isReader.close(); urlConnection.disconnect(); XmlSourceStr = sb.toString(); } catch (IOException e) { e.printStackTrace(); } } } public void XmlParse() { try { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); XMLReader reader = parser.getXMLReader(); reader.setContentHandler(myXmlHandler); reader.parse(new InputSource(new StringReader(XmlSourceStr))); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public class MyButtonClickListener implements OnClickListener { @Override public void onClick(View view) { if (view == XmlParseButton) { XmlConnection("http://news.163.com/special/00011K6L/rss_newstop.xml"); XmlParse(); if (!newsList.isEmpty()) { Iterator<RssNews> it = newsList.iterator(); while (it.hasNext()) { RssNews news = (RssNews) it.next(); System.out.println(news.getTitle()); System.out.println(news.getPubDate()); System.out.println(news.getLink()); System.out.println("---------------------------------"); } } } } } }
MyXmlHandler.java
RssNews.java