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

📄 rssparser.java

📁 rss parser for your parser ok...
💻 JAVA
字号:
/*
 * RSSParser.java
 *
 * Created on July 19, 2007, 4:13 PM
 */

package org.secangkirkopipanas.rss;

import java.io.DataInputStream;
import java.io.InputStreamReader;
import org.kxml2.io.KXmlParser;
import org.secangkirkopipanas.rss.common.RSS;
import org.secangkirkopipanas.rss.common.RSSImage;
import org.secangkirkopipanas.rss.common.RSSItem;
import org.xmlpull.v1.XmlPullParser;

/**
 *
 * @author lilik.haryanto
 */
public class RSSParser {
    
    private RSS rss;
    
    private KXmlParser parser;
    
    private RSSItem[] rssitems;
    
    private int count = 0;
    
    /** Creates a new instance of RSSParser */
    public RSSParser() {
        setRss(new RSS());
    }
    
    public RSSParser(int maxData) {
        setRss(new RSS());
        rssitems = new RSSItem[maxData];
    }
    
    public void parse(DataInputStream dis) {
        parser = new KXmlParser();
        try {
            parser.setInput(new InputStreamReader(dis));
            parser.next();
            
            parser.require(XmlPullParser.START_TAG, null, "rss");
            parser.nextTag();
            
            parser.require(XmlPullParser.START_TAG, null, "channel");
            
            while (parser.nextTag() != XmlPullParser.END_TAG) {
                
                parser.require(XmlPullParser.START_TAG, null, "title");
                getRss().setTitle(parser.nextText());
                parser.require(XmlPullParser.END_TAG, null, "title");
                
                parser.nextTag();
                
                parser.require(XmlPullParser.START_TAG, null, "link");
                getRss().setLink(parser.nextText());
                parser.require(XmlPullParser.END_TAG, null, "link");
                
                parser.nextTag();
                
                parser.require(XmlPullParser.START_TAG, null, "description");
                getRss().setDescription(parser.nextText());
                parser.require(XmlPullParser.END_TAG, null, "description");
                
                parser.nextTag();
                
                parser.require(XmlPullParser.START_TAG, null, "language");
                getRss().setLanguage(parser.nextText());
                parser.require(XmlPullParser.END_TAG, null, "language");
                
                parser.nextTag();
                
                parser.require(XmlPullParser.START_TAG, null, "copyright");
                getRss().setCopyright(parser.nextText());
                parser.require(XmlPullParser.END_TAG, null, "copyright");
                
                parser.nextTag();
                
                parser.require(XmlPullParser.START_TAG, null, "lastBuildDate");
                getRss().setLastBuildDate(parser.nextText());
                parser.require(XmlPullParser.END_TAG, null, "lastBuildDate");
                parser.nextTag();
                
                parser.require(XmlPullParser.START_TAG, null, "image");
                
                while (parser.nextTag() != XmlPullParser.END_TAG) {
                    RSSImage rssimage = new RSSImage();
                    
                    parser.require(XmlPullParser.START_TAG, null, "title");
                    rssimage.setTitle(parser.nextText());
                    parser.require(XmlPullParser.END_TAG, null, "title");
                    
                    parser.nextTag();
                    
                    parser.require(XmlPullParser.START_TAG, null, "url");
                    rssimage.setUrl(parser.nextText());
                    parser.require(XmlPullParser.END_TAG, null, "url");
                    
                    parser.nextTag();
                    
                    parser.require(XmlPullParser.START_TAG, null, "link");
                    rssimage.setLink(parser.nextText());
                    parser.require(XmlPullParser.END_TAG, null, "link");
                    
                    getRss().setImages(rssimage);
                }
                
                parser.require(XmlPullParser.END_TAG, null, "image");
                
                while (parser.nextTag() == XmlPullParser.START_TAG) {
                
                    parser.require(XmlPullParser.START_TAG, null, "item");
                    
                    while (parser.nextTag() != XmlPullParser.END_TAG) {

                        rssitems[count] = new RSSItem();
                        parser.require(XmlPullParser.START_TAG, null, "title");
                        rssitems[count].setTitle(parser.nextText());
                        parser.require(XmlPullParser.END_TAG, null, "title");

                        parser.nextTag();

                        parser.require(XmlPullParser.START_TAG, null, "link");
                        rssitems[count].setLink(parser.nextText());
                        parser.require(XmlPullParser.END_TAG, null, "link");

                        parser.nextTag();

                        parser.require(XmlPullParser.START_TAG, null, "description");
                        rssitems[count].setDescription(parser.nextText());
                        parser.require(XmlPullParser.END_TAG, null, "description");

                        parser.nextTag();

                        parser.require(XmlPullParser.START_TAG, null, "author");
                        rssitems[count].setAuthor(parser.nextText());
                        parser.require(XmlPullParser.END_TAG, null, "author");

                        parser.nextTag();

                        parser.require(XmlPullParser.START_TAG, null, "guid");
                        rssitems[count].setGuid(parser.nextText());
                        parser.require(XmlPullParser.END_TAG, null, "guid");

                        parser.nextTag();

                        parser.require(XmlPullParser.START_TAG, null, "pubDate");
                        rssitems[count].setPubDate(parser.nextText());
                        parser.require(XmlPullParser.END_TAG, null, "pubDate");

                        count++;
                        getRss().setItems(rssitems);
                    }

                    parser.require(XmlPullParser.END_TAG, null, "item");
                }
                
                parser.require(XmlPullParser.END_TAG, null, "channel");
                
            }
            
            parser.require(XmlPullParser.END_TAG, null, "rss");
            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public RSS getRss() {
        return rss;
    }

    public void setRss(RSS rss) {
        this.rss = rss;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }
    
}

⌨️ 快捷键说明

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