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

📄 kxml12parser.java

📁 一个在手机上实现RSS阅读器功能的程序代码
💻 JAVA
字号:
package rss;

import java.io.*;
import javax.microedition.lcdui.*;

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

/**
 * This class parses RSS 0.91 and RDF documents. It provides
 * events to registered ParserListeners.
 *
 * @author Jonathan Knudsen
 */
public class kXML12Parser
    extends Parser {
  private boolean mCancel;
  
  public kXML12Parser() {}
  
  public void parse(InputStream in) throws IOException {
    mCancel = false;
    
    Reader reader = new InputStreamReader(in);
    XmlParser parser = new XmlParser(reader);
    ParseEvent pe = null;

    parser.skip();
    pe = parser.read();
    String root = pe.getName();
    if (root.equals("rss")) {
      parser.skip();
      parser.read(Xml.START_TAG, null, "channel");
    }
    
    boolean trucking = true;
    boolean first = true;
    while (trucking && mCancel == false) {
      pe = parser.read();
      if (pe.getType() == Xml.START_TAG) {
        String name = pe.getName();
        if (name.equals("item")) {
          String title = null, link = null, 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();
            }
          }
          if (first) {
            if (mCancel == false) fireFirstItem();
            first = false;
          }
          if (mCancel == false) fireItemParsed(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(root))
        trucking = false;
    }
    if (mCancel == false) fireFinished();
    mCancel = false;
  }
  
  /**
   * Cancels parsing.
   */
  public void cancel() {
    mCancel = true;
  }
}

⌨️ 快捷键说明

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