📄 rssparser.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 + -