重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
通过RSS把数据整合到一起。确实提供了很多方便。
成都创新互联公司于2013年创立,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元都匀做网站,已为上家服务,为都匀各地企业和个人服务,联系电话:18982081108
不知道是不是自己太没有觉悟,没有用sourceforge上面的源码,自己用dom写了一个rss的读取器,代码列在下面吧。
package rssweb;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;
import org.w3c.dom.CharacterData;
/**
*
Title: RSS页面显示bean
*
*
Description: 通过调用该bean,实现在jsp中解析rss并在页面中显示
*
*
Copyright: Copyright (c) 2005
*
*
Company: ui studio
*
* @author uijiang
* @version 1.0
*/
public class ShowRSS {
//PreTitle存储RSS channel项目下的title名
public String PreTitle;
//itemList存储RSS的item项目下的title名
public String[] itemList;
//linkList存储RSS的的item项目下的link名
public String[] linkList;
//pubDateList存储RSS的的item项目下的pubDate名
public String[] pubDateList;
//descriptionList存储RSS的的item项目下的description名
public String[] descriptionList;
//itemCount记录读取出来的项目数
public int itemCount;
//不带参数的构造函数,不对各成员初始化,返回null
public ShowRSS() {
}
//将RSS地址以destination传入,实现读取操作,并为各成员变量赋值。
public ShowRSS(String destination) {
try {
//DOM初始化
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.
newInstance();
DocumentBuilder documentBuilder = dbFactory.newDocumentBuilder();
Document document = documentBuilder.parse(destination);
//得出item数量
NodeList nodelistCount = document.getElementsByTagName("item");
itemCount = nodelistCount.getLength();
//初始化各成员数组
itemList = new String[itemCount];
linkList = new String[itemCount];
pubDateList = new String[itemCount];
descriptionList = new String[itemCount];
//赋值计数
int _count = 0;
//获取title并为各成员变量赋值
NodeList nodelistTitle = document.getElementsByTagName("title");
for (int i = 0; i nodelistTitle.getLength(); i++) {
Node node = nodelistTitle.item(i);
if (node.getParentNode().getNodeName().trim() == "channel") {
PreTitle = ((CharacterData) node.getFirstChild()).getData();
}
if (node.getParentNode().getNodeName().trim() == "item") {
itemList[_count++] = ((CharacterData) node.getFirstChild()).
getData();
}
}
//赋值计数
_count = 0;
//获取link并为各成员变量赋值
NodeList nodelistLink = document.getElementsByTagName("link");
for (int i = 0; i nodelistLink.getLength(); i++) {
Node node = nodelistLink.item(i);
if (node.getParentNode().getNodeName().trim() == "item") {
linkList[_count++] = ((CharacterData) node.getFirstChild()).
getData();
}
}
//赋值计数
_count = 0;
//获取pubDataList并为各成员变量赋值
NodeList nodelistpubDate = document.getElementsByTagName("pubDate");
for (int i = 0; i nodelistpubDate.getLength(); i++) {
Node node = nodelistpubDate.item(i);
if (node.getParentNode().getNodeName().trim() == "item") {
pubDateList[_count++] = ((CharacterData) node.getFirstChild()).
getData();
}
}
//赋值计数
_count = 0;
//获取pubDataList并为各成员变量赋值
NodeList nodelistDescription = document.getElementsByTagName(
"description");
for (int i = 0; i nodelistDescription.getLength(); i++) {
Node node = nodelistDescription.item(i);
if (node.getParentNode().getNodeName().trim() == "item") {
descriptionList[_count++] = ((CharacterData) node.
getFirstChild()).
getData();
}
}
} catch (Exception e) {
}
}
}
聚合就是由很多节点合到一起的一个工程,但是每个节点不能独立存在。有一个相对的概念叫组合,组合也有很多节点组成,但是它的每个节点可以独立存在。
聚合和组合只有概念上的区别,在Java中的代码实现上没有区别。
聚合:指的是整体与部分的关系
组合:表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期,即整体对象不存在,部分对象也将不存在
聚合(Aggregation) 关系是关联关系的一种,是强的关联关系。聚合是整体和个体之间的关系。例如,汽车类与引擎类、轮胎类,以及其它的零件类之间的关系便整体和个体的关系。与关联关系一样,聚合关系也是通过实例变量实现的。但是关联关系所涉及的两个类是处在同一层次上的,而在聚合关系中,两个类是处在不平等层次上的,一个代表整体,另一个代表部分
组合(Composition) 关系是关联关系的一种,是比聚合关系强的关系。它要求普通的聚合关系中代表整体的对象负责代表部分对象的生命周期,组合关系是不能共享的。代表整体的对象需要负责保持部分对象和存活,在一些情况下将负责代表部分的对象湮灭掉。代表整体的对象可以将代表部分的对象传递给另一个对象,由后者负责此对象的生命周期。换言之,代表部分的对象在每一个时刻只能与一个对象发生组合关系,由后者排他地负责生命周期。部分和整体的生命周期一样。
以上关系的耦合度依次增强(关于耦合度的概念将在以后具体讨论,这里可以暂时理解为当一个类发生变更时,对其他类造成的影响程度,影响越小则耦合度越弱,影响越大耦合度越强)。由定义我们已经知道,依赖关系实际上是一种比较弱的关联,聚合是一种比较强的关联,而组合则是一种更强的关联,所以笼统的来区分的话,实际上这四种关系、都是关联关系。
聚合关系是是一种比较强的关联关系,java中一般使用成员变量形式实现。对象之间存在着整体与部分的关系。例如上例中
class Driver {
//使用成员变量形式实现聚合关系
Car mycar;
public void drive(){
mycar.run();
}
}假如给上面代码赋予如下语义:车是一辆私家车,是司机财产的一部分。则相同的代码即表示聚合关系了。聚合关系一般使用setter方法给成员变量赋值。
假如赋予如下语义:车是司机的必须有的财产,要想成为一个司机必须要先有辆车,车要是没了,司机也不想活了。而且司机要是不干司机了,这个车就砸了,别人谁也别想用。那就表示组合关系了。一般来说,为了表示组合关系,常常会使用构造方法来达到初始化的目的,例如上例中,加上一个以Car为参数的构造方法
public Driver(Car car){
mycar = car;
}所以,关联、聚合、组合只能配合语义,结合上下文才能够判断出来,而只给出一段代码让我们判断是关联,聚合,还是组合关系,则是无法判断的。