📄 rss.java
字号:
package cn.pfc.ywt.writer;
import java.io.IOException;
import java.io.StringReader;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
/**
* <p>
* Name: Rss.java
*
* <p>
* Title: RSS类
*
* <p>
* Description: 该类用于生成RSS XML的字符串或DOM格式的数据。
*
* <p>
* Copyright: Copyright (c) 2007
*
* <p>
* Company: 北大方正软件技术学院实训基地
*
* <p>
* Modified: 2007年12月22日
*
*
* @author 杨文通
* @version 1.0
*/
public class Rss extends RssElement {
public static DocumentBuilderFactory dbf = DocumentBuilderFactory
.newInstance();
// xml文件的编码格式
private String encoding = "utf-8";
// rss版本
private String version = "2.0";
// rss命名空间
private Xmlns xmlns;
// RSS中的频道元素
private Channel channel;
// XSL样式
private StyleSheet styleSheet;
public StyleSheet getStyleSheet() {
return styleSheet;
}
public void setStyleSheet(StyleSheet styleSheet) {
this.styleSheet = styleSheet;
}
public Channel getChannel() {
return channel;
}
public String getEncoding() {
return encoding;
}
public String getVersion() {
return version;
}
public Xmlns getXmlns() {
return xmlns;
}
public void setEncoding(String encoding) {
this.encoding = encoding;
}
public void setVersion(String version) {
this.version = version;
}
public void setChannel(Channel channel) {
this.channel = channel;
}
public void setXmlns(Xmlns xmlns) {
this.xmlns = xmlns;
}
public Rss(String encoding, String version, Xmlns xmlns, Channel channel) {
super();
this.encoding = encoding;
this.version = version;
this.xmlns = xmlns;
this.channel = channel;
}
public Rss(Xmlns xmlns, Channel channel) {
super();
this.xmlns = xmlns;
this.channel = channel;
}
public Rss(Channel channel) {
super();
this.channel = channel;
}
public Rss() {
super();
}
@Override
public String toString() {
StringBuilder str = new StringBuilder(32);
str
.append("<?xml version=\"1.0\" encoding=\"" + this.encoding
+ "\"?>");
if (this.xmlns != null) {
str.insert(str.indexOf(">") - 1, " " + xmlns);
}
if (this.styleSheet != null) {
str.append(styleSheet);
}
str.append("<rss version=\"" + this.version + "\">");
str.append(channel);
str.append("</rss>");
return str.toString();
}
// 将该对象格式化为XMLDOM
public Document toDocument() {
return toDocument(this.toString());
}
// 将RSS的字符串数据格式化为XMLDOM
public Document toDocument(String xml) {
try {
StringReader sr = new StringReader(xml);
InputSource is = new InputSource(sr);
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(is);
return doc;
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
return null;
}
// 通过地址获取Document
public Document getDocumentbyUrl(String url) {
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(url);
return doc;
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
return null;
}
// 将指向地址的rss解析为rss对象
// public void RssRead(String strURL) {
// try {
// URL url = new URL(strURL);
// String strXml = "";
// String sCurrentLineStr = "";
// HttpURLConnection connect = (HttpURLConnection) url
// .openConnection();
// connect.connect();
// BufferedReader reader = new BufferedReader(new InputStreamReader(connect
// .getInputStream(), encoding));
// while ((sCurrentLineStr = reader.readLine()) != null) {
// strXml += sCurrentLineStr;
// }
// reader.close();
// connect.disconnect();
// Document doc = this.toDocument(strXml);
// Element eleChannel = (Element) doc.getElementsByTagName("channel")
// .item(0);
// channel = new Channel();
// channel.setItems(new ArrayList<Item>());
// channel.setCategories(new ArrayList<Category>());
// NodeList nodeList;
//
// while (doc.getElementsByTagName("item").getLength() > 0) {
// Node itemNode = doc.getElementsByTagName("item").item(0);
// Item item = new Item();
// nodeList = ((Element) itemNode)
// .getElementsByTagName("category");
// for (int i = 0; i < nodeList.getLength(); i++) {
// Element eleCategory = (Element) nodeList.item(i);
// Category category = new Category();
// category.setDomain(eleCategory.getAttribute("domain"));
// category.setText(strNotNull(eleCategory));
// item.addCategory(category);
// }
// nodeList = ((Element) itemNode).getElementsByTagName("source");
// if (nodeList.getLength() > 0) {
// Source source = new Source();
// source.setUrl(((Element) nodeList.item(0))
// .getAttribute("url"));
// source.setText(strNotNull(nodeList.item(0)));
// item.setSource(source);
// }
// nodeList = ((Element) itemNode)
// .getElementsByTagName("enclosure");
// if (nodeList.getLength() > 0) {
// Enclosure enclosure = new Enclosure();
// enclosure.setUrl(((Element) nodeList.item(0))
// .getAttribute("url"));
// enclosure.setType(((Element) nodeList.item(0))
// .getAttribute("type"));
// enclosure.setLength(Integer.parseInt(((Element) nodeList
// .item(0)).getAttribute("length")));
// item.setEnclosure(enclosure);
// }
// nodeList = ((Element) itemNode).getElementsByTagName("title");
// if (nodeList.getLength() > 0) {
// item.setTitle(strNotNull(nodeList.item(0)));
// }
// nodeList = ((Element) itemNode).getElementsByTagName("link");
// if (nodeList.getLength() > 0) {
// item.setLink(strNotNull(nodeList.item(0)));
// }
// nodeList = ((Element) itemNode)
// .getElementsByTagName("description");
// if (nodeList.getLength() > 0) {
// item.setDescription(strNotNull(nodeList.item(0)));
// }
// nodeList = ((Element) itemNode).getElementsByTagName("author");
// if (nodeList.getLength() > 0) {
// item.setAuthor(strNotNull(nodeList.item(0)));
// }
// nodeList = ((Element) itemNode)
// .getElementsByTagName("comments");
// if (nodeList.getLength() > 0) {
// item.setComments(strNotNull(nodeList.item(0)));
// }
// nodeList = ((Element) itemNode).getElementsByTagName("guid");
// if (nodeList.getLength() > 0) {
// item.setGuid(strNotNull(nodeList.item(0)));
// }
// nodeList = ((Element) itemNode).getElementsByTagName("pubDate");
// if (nodeList.getLength() > 0) {
// item.setPubDate(strNotNull(nodeList.item(0)));
// }
// channel.addItems(item);
// eleChannel.removeChild(itemNode);
// }
// nodeList = ((Element) eleChannel).getElementsByTagName("image");
// if (nodeList.getLength() > 0) {
// Element eleImage = (Element) nodeList.item(0);
// Image image = new Image();
// if (eleImage.getElementsByTagName("title").getLength() > 0) {
// image.setTitle(strNotNull(eleImage.getElementsByTagName(
// "title").item(0)));
// }
// if (eleImage.getElementsByTagName("url").getLength() > 0) {
// image.setUrl(strNotNull(eleImage
// .getElementsByTagName("url").item(0)));
// }
// if (eleImage.getElementsByTagName("link").getLength() > 0) {
// image.setLink(strNotNull(eleImage.getElementsByTagName(
// "link").item(0)));
// }
// if (eleImage.getElementsByTagName("description").getLength() > 0) {
// image.setDescription(strNotNull(eleImage
// .getElementsByTagName("description").item(0)));
// }
// if (eleImage.getElementsByTagName("width").getLength() > 0) {
// image.setWidth(Integer.parseInt(strNotNull(eleImage
// .getElementsByTagName("width").item(0))));
// }
// if (eleImage.getElementsByTagName("height").getLength() > 0) {
// image.setHeight(Integer.parseInt(strNotNull(eleImage
// .getElementsByTagName("height").item(0))));
// }
// channel.setImage(image);
// eleChannel.removeChild(eleImage);
// }
// nodeList = ((Element) eleChannel).getElementsByTagName("category");
// while (((Element) eleChannel).getElementsByTagName("category")
// .getLength() > 0) {
// Element eleCategory = (Element) ((Element) eleChannel)
// .getElementsByTagName("category").item(0);
// Category category = new Category();
// category.setDomain(eleCategory.getAttribute("domain"));
// category.setText(strNotNull(eleCategory));
// channel.addCategories(category);
// eleChannel.removeChild(eleCategory);
// }
// nodeList = ((Element) eleChannel).getElementsByTagName("cloud");
// if (nodeList.getLength() > 0) {
// Element eleCloud = (Element) nodeList.item(0);
// Cloud cloud = new Cloud();
// cloud.setDomain(eleCloud.getAttribute("domain"));
// cloud.setPort(Integer.parseInt(eleCloud.getAttribute("port")));
// cloud.setPath(eleCloud.getAttribute("path"));
// cloud.setRegisterProcedure(eleCloud
// .getAttribute("registerProcedure"));
// cloud.setProtocol(eleCloud.getAttribute("protocol"));
// channel.setCloud(cloud);
// eleChannel.removeChild(eleCloud);
// }
//
// nodeList = ((Element) eleChannel).getElementsByTagName("textInput");
// if (nodeList.getLength() > 0) {
// Element eleTextInput = (Element) nodeList.item(0);
// TextInput textInput = new TextInput();
// if (eleTextInput.getElementsByTagName("title").getLength() > 0) {
// textInput.setTitle(strNotNull(eleTextInput
// .getElementsByTagName("title").item(0)));
// }
// if (eleTextInput.getElementsByTagName("name").getLength() > 0) {
// textInput.setName(strNotNull(eleTextInput
// .getElementsByTagName("name").item(0)));
// }
// if (eleTextInput.getElementsByTagName("link").getLength() > 0) {
// textInput.setLink(strNotNull(eleTextInput
// .getElementsByTagName("link").item(0)));
// }
// if (eleTextInput.getElementsByTagName("description")
// .getLength() > 0) {
// textInput.setDescription(strNotNull(eleTextInput
// .getElementsByTagName("description").item(0)));
// }
// channel.setTextInput(textInput);
// eleChannel.removeChild(eleTextInput);
// }
// nodeList = eleChannel.getElementsByTagName("title");
// if (nodeList.getLength() > 0) {
// channel.setTitle(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("link");
// if (nodeList.getLength() > 0) {
// channel.setLink(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("description");
// if (nodeList.getLength() > 0) {
// channel.setDescription(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("language");
// if (nodeList.getLength() > 0) {
// channel.setLanguage(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("copyright");
// if (nodeList.getLength() > 0) {
// channel.setCopyright(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("managingEditor");
// if (nodeList.getLength() > 0) {
// channel.setManagingEditor(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("webMaster");
// if (nodeList.getLength() > 0) {
// channel.setWebMaster(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("pubDate");
// if (nodeList.getLength() > 0) {
// channel.setPubDate(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("lastBuildDate");
// if (nodeList.getLength() > 0) {
// channel.setLastBuildDate(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("generator");
// if (nodeList.getLength() > 0) {
// channel.setGenerator(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("docs");
// if (nodeList.getLength() > 0) {
// channel.setDocs(strNotNull(nodeList.item(0)));
// }
// nodeList = eleChannel.getElementsByTagName("ttl");
// if (nodeList.getLength() > 0) {
// channel.setTtl(Integer.parseInt(strNotNull(nodeList.item(0))));
// }
// nodeList = eleChannel.getElementsByTagName("rating");
// if (nodeList.getLength() > 0) {
// channel.setRating(strNotNull(nodeList.item(0)));
// }
// } catch (Exception ex) {
// ex.printStackTrace();
// }
// }
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -