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

📄 rssparser.java

📁 J2ME核心类及MIDlet类 MIDP用户界面对象 图形处理及低级事件处理 多线程编程 I/O及网络编程 数据库RMS编程 浮点数编程 多媒体及GAME API编程 安全、加密及
💻 JAVA
字号:
import java.io.*;
import javax.microedition.io.*;

import org.kxml.*;
import org.kxml.parser.*;

public class RSSParser {
	protected RSSListener mRSSListener;
	
	public void setRSSListener(RSSListener listener) {
		mRSSListener = listener;
	}
	
	// Non-blocking.
	public void parse(final String url) {
		Thread t = new Thread() {
			public void run() {
				// set up the network connection
				HttpConnection hc = null;
				
				try {
			if( url.indexOf( "http" ) == 0 )
			{
				hc = (HttpConnection)Connector.open(url);
				parse(hc.openInputStream());
			}
			else
			{
				parse( getClass().getResourceAsStream( url ) );
			}
				}
				catch (IOException ioe) {
					mRSSListener.exception(ioe);
				}
				finally {
					try { if (hc != null) hc.close(); }
					catch (IOException ignored) {}
				}
			}
		};
		t.start();
	}
	
	// Blocking.
	public void parse(InputStream in) throws IOException {
		Reader reader = new InputStreamReader(in);
		XmlParser parser = new XmlParser(reader);
		ParseEvent pe = null;

		parser.skip();
		parser.read(Xml.START_TAG, null, "rss");
		parser.skip();
		parser.read(Xml.START_TAG, null, "channel");
		
		boolean trucking = true;
		boolean first = true;
		while (trucking) {
			pe = parser.read();
			if (pe.getType() == Xml.START_TAG) {
				String name = pe.getName();
				if (name.equals("item")) {
					String title, link, description;
					title = link = description = null;
					while ((pe.getType() != Xml.END_TAG) ||
							(pe.getName().equals(name) == false)) {
						pe = parser.read();
						if (pe.getType() == Xml.START_TAG &&
								pe.getName().equals("title")) {
							pe = parser.read();
							title = pe.getText();
						}
						else if (pe.getType() == Xml.START_TAG &&
								pe.getName().equals("link")) {
							pe = parser.read();
							link = pe.getText();
						}
						else if (pe.getType() == Xml.START_TAG &&
								pe.getName().equals("description")) {
							pe = parser.read();
							description = pe.getText();
						}
					}
					mRSSListener.itemParsed(title, link, description);
				}
				else {
					while ((pe.getType() != Xml.END_TAG) ||
							(pe.getName().equals(name) == false))
						pe = parser.read();
				}
			}
			if (pe.getType() == Xml.END_TAG &&
						pe.getName().equals("rss"))
				trucking = false;
		}
	}
}

⌨️ 快捷键说明

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