androidrss
1. android 中如何解析Rss訂閱的xml文件
Android 中如何解析Rss訂閱的xml文件 上代碼: package com.android.rssreader; import java.io.IOException; import java.io.InputStream; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; import android.app.Activity; import android.os.Bundle; public class RssReaderActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } private void ParseRss(int thd, InputStream in) throws IOException, XmlPullParserException { String title = ""; String pubDate = ""; String link = ""; XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); factory.setNamespaceAware(true); XmlPullParser xpp = factory.newPullParser(); xpp.setInput(in, null); //null 為編碼格式,如utf-8,null為所有的。 int eventType = xpp.getEventType(); String tag = xpp.getName(); //解析文件的頭 while(eventType != XmlPullParser.END_DOCUMENT) { if(eventType == XmlPullParser.START_TAG) { if(tag.equals("item")) { return; } else if(tag.equals("title")) { xpp.next(); title = xpp.getText().toString(); } else if(tag.equals("pubDate")) { xpp.next(); pubDate = xpp.getText().toString(); } else if(tag.equals("link")) { xpp.next(); link = xpp.getText().toString(); } } else if(eventType == XmlPullParser.END_TAG) { if(tag.equals("link")) { RssHead head = new RssHead(title, pubDate, link);} } eventType = xpp.next(); } //解析文件的Item項 String item_title = null; String item_pubtime = null; String item_link = null; String description = null; while(eventType != XmlPullParser.END_DOCUMENT) { if(eventType == XmlPullParser.START_TAG) { if(tag.equals("item")) { xpp.next(); item_title = item_pubtime = item_link = description = ""; } else if(tag.equals("title")) { xpp.next(); item_title = xpp.getText().toString(); } else if(tag.equals("link")) { xpp.next(); item_link = xpp.getText().toString(); } else if(tag.equals("pubTime")) { xpp.next(); item_pubtime = xpp.getText().toString(); } else if(tag.equals("description")) { xpp.next(); description = xpp.getText().toString(); } } else if(eventType == XmlPullParser.END_TAG) { if(tag.equals("item")) { RssItem ri = new RssItem(item_title,item_pubtime,item_link,description); } } } //以上的解析方法是針對雙標簽,例如 //下面的解析方法是針對的單標簽,例如:
2. android rss閱讀器的資料庫設計怎麼做
最簡單的就用SqlLite就好了,ContentProvider也可以。。。
3. 求教:android rss閱讀器開發需要掌握哪些技術
1、通過Http連接從伺服器獲取Xml數據
2、Xml文件解析。
3、數據的呈現。也就是ListView控制項的使用。
這其中也涉及到線程、handler的使用。
-----------------------------------------------------------------------------------------------------
安卓精英團為你解答
安卓精英團歡迎各位精英加入