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的使用。
-----------------------------------------------------------------------------------------------------
安卓精英团为你解答
安卓精英团欢迎各位精英加入