⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rssparser.java

📁 基于J2ME的RSS阅读器
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package pp.rss.reader.model;import pp.rss.reader.midlet.RSSReader;import pp.rss.reader.ui.*;import javax.microedition.lcdui.*;import javax.microedition.io.*;import java.io.*;import org.kxml2.io.*;import org.xmlpull.v1.*;/** * * @author Administrator */public class RSSParser implements Runnable{    private String source;    private InfoForm fmInfo;    private TitleList list;    private RSSReader midlet;    public RSSParser(RSSReader midlet,String source,InfoForm fmInfo,TitleList list)    {        this.fmInfo=fmInfo;        this.list=list;        this.midlet=midlet;        this.source=source;    }    public void run()    {        parseRSSFeed();    }    public void parseRSSFeed()    {        HttpConnection conn=null;        try        {            fmInfo.setMessage("正在连接服务器...");            conn=(HttpConnection)Connector.open(source);            if(conn==null)            {                fmInfo.setMessage("连接到"+source+"失败");                return;            }else            {                fmInfo.setMessage("正在读取信息...");            }            InputStream is=conn.openInputStream();            fmInfo.setMessage("正在解析信息...");            KXmlParser parser=new KXmlParser();            parser.setInput(is, null);            parser.nextTag();            int event=parser.getEventType();            String headlineTitle=null,headlineDesc=null;            midlet.showHeadlines();            while(true)            {                if(event==XmlPullParser.START_TAG&&parser.getName().equals("item"))                {                    event=parser.next();                    while(true)                    {                        if(event==XmlPullParser.START_TAG&&parser.getName().equals("title"))                        {                            parser.next();                            headlineTitle=parser.getText().trim();                        }else if(event==XmlPullParser.START_TAG&&parser.getName().equals("description"))                        {                            parser.next();                            headlineDesc=parser.getText().trim();                        }                        event=parser.next();                        if(event==XmlPullParser.END_TAG&&parser.getName().equals("item"))                        {                            list.newTitle(headlineTitle, headlineDesc);                            System.out.print(headlineTitle+"\r\n"+headlineDesc+"\r\n");                            break;                        }                    }                }                if(event==XmlPullParser.END_TAG&&parser.getName().equals("rss"))                    break;                event=parser.next();            }        }catch(Exception e)        {            fmInfo.setMessage("发生错误:"+e.getMessage());        }finally        {            try            {                if(conn!=null)                    conn.close();            }catch(Exception e)            {                fmInfo.setMessage("关闭网络连接失败:"+e.toString());            }        }    }    public void start()    {        Thread thread=new Thread(this);        try        {            thread.start();        }catch(Exception e)        {            e.printStackTrace();        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -