使用dom4j对rss的xml文件分析
来源:互联网 发布:java批量发信息 编辑:程序博客网 时间:2024/06/05 04:43
Rss-web开始了,今天我的工作就是做对Rss文件的分析,想起前几天刚刚试用了一下的 dom4j,今天就拿他来分析xml了.用的的确很方便!顶一个!
由于我只需要从xml中读取必要的信息,所以写的代码不具有通用性,不过对大多数基本应用,这个类应该够用了!先贴代码和运行结果:
package org.ibmclub.hust.Rss;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Node;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.ibmclub.hust.Rss.bean.Item;
public class RssFile {
private Document doc;
private String channelName;
private String channelLink;
private String channelDes;
private ArrayList<Item> items = new ArrayList<Item>();
public RssFile(File f) {
parseFile(f);
}
private void parseFile(File f) {
try {
SAXReader reader = new SAXReader();
doc = reader.read(f);
List l = doc.selectNodes("rss/channel");
if (l.size() == 0) {
throw new Exception("not a good rss-xml file");
}
Node channel = (Node) l.get(0);
channelName = ((Element) channel.selectNodes("title").get(0))
.getText();
channelLink = ((Element) channel.selectNodes("link").get(0))
.getText();
channelDes = ((Element) channel.selectNodes("description").get(0))
.getText();
//封装item信息
List itemList = channel.selectNodes("item");
for(Object item : itemList){
Item i = new Item((Node)item);
items.add(i);
}
//查看输出
System.out.println("channelName:" + channelName);
System.out.println("channelLink:" + channelLink);
System.out.println("channeDes:" + channelDes);
for(Item i : items){
System.out.println(" title:"+i.getTitle());
// System.out.println(" link:"+i.getLink());
// System.out.println(" pubtime:"+i.getPubTime());
// System.out.println(" des:"+i.getDes());
}
} catch (Exception e) {
System.out.println("message:"+e.getMessage());
}
}
public String getChannelName() {
return channelName;
}
public String getChannelLink() {
return channelLink;
}
public String getDescription() {
return channelDes;
}
public ArrayList<Item> getItems() {
return items;
}
public static void main(String[] args) {
long start = System.currentTimeMillis();
RssFile rssfile = new RssFile(new File("c://Rss.xml"));
System.out.println(System.currentTimeMillis() - start);
}
}
package org.ibmclub.hust.Rss.bean;
import java.sql.Timestamp;
import org.dom4j.Element;
import org.dom4j.Node;
public class Item {
private String title;
private String link;
private String des;
private String pubTime;
public Item() {
}
public Item(Node itemNode) {
title = ((Element) itemNode.selectNodes("title").get(0)).getText();
link = ((Element) itemNode.selectNodes("link").get(0)).getText();
des = ((Element) itemNode.selectNodes("description").get(0)).getText();
pubTime = ((Element) itemNode.selectNodes("pubDate").get(0)).getText();
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getLink() {
return link;
}
public void setLink(String link) {
this.link = link;
}
public String getPubTime() {
return pubTime;
}
public void setPubTime(String pubTime) {
this.pubTime = pubTime;
}
public String getDes(){
return des ;
}
public void setDes(String des){
this.des = des ;
}
}
运行结果:
channelName:CQ的专栏
channelLink:http://blog.csdn.net/cq8587/
channeDes:
title:今天上课了
title:拓扑排序
title:俄罗斯农夫算法
title:影评:雨天的水彩画 《爱有天意》观感(转)
title:java处理压缩文件
title:第一篇文章
532
用的时间还真不少 532ms,不过写起代码来还真是简单方便,鱼和熊掌不可兼得!
- 使用dom4j对rss的xml文件分析
- 使用Dom4j对XML文件的各种操作
- DOM4j对XML文件的操作
- 对xml文件的解析dom4j
- xml-使用dom4j对xml文件进行crud操作
- xml解析之使用dom4j的api对xml文件进行CRUD(二)
- 使用dom4j的xpath读取XML文件
- dom4j读取xml文件的简单使用
- 使用dom4j对XML文件进行增删改查
- 【学习笔记】JAVA之使用dom4j对xml文件解析
- 使用dom4j对xml文件进行读取和输出操作
- 使用dom4j对xml文件进行增、删、改、查
- 使用dom4j工具包实现对xml文件的增删改查和乱码问题的处理
- 简单使用dom4j对xml文件进行输出操作(如何使用dom4j对xml文件进行输出)
- 总结使用dom4j和xpath对xml文件的增删改查
- 利用dom4j的visitor模式对xml文件的“反射”
- 用dom4j+xpath的方式对xml文件进行读取
- Dom4J对XML文件的读取和写入
- 根据键盘按下的字母,自动打开指定的链接的方法(js代码)
- shark安装与运行
- 为什么看他们我会感动(文章转自lqqm)
- 当页面中文本不允许选择时,使文本框中文本可以选择的js代码
- 按下按钮后页面的滚动条向下(或向上)滑动,松开之后便停留在当前位置的效果如何实现?
- 使用dom4j对rss的xml文件分析
- [ASP代码]网页签名小程序
- Ajax内部交流文档
- C++字符串完全指引之一 —— Win32 字符编码
- 在WINXP下安装SQLSERVER2000的办法
- OSWorkflow源码分析
- firefox浏览器下用getElementById取一个隐藏表单域内容时发现的问题
- C++字符串完全指引之二 —— 字符串封装类
- 很久没有来了