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