iplat4j_[java] 动态创建RSS

package com.baosight.iplat4j.ec.rs.service;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.List;

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.JDOMException;

import org.jdom.output.Format;

import org.jdom.output.XMLOutputter;

import com.baosight.iplat4j.common.ec.domain.Tecsm01;

import com.baosight.iplat4j.core.ei.EiInfo;

import com.baosight.iplat4j.ec.rs.domain.ECRS01;

import com.baosight.iplat4j.ec.service.ServiceEC0001;

import com.baosight.iplat4j.ec.tm.utils.TemplateUtils;

import com.baosight.iplat4j.ec.util.ECUtil;

import com.baosight.iplat4j.logging.Logger;

import com.baosight.iplat4j.logging.LoggerFactory;

public class ServiceECRS02 extends ServiceECRS01{

private static final Logger logger = LoggerFactory.getLogger(ServiceECRS02.class);

/**

* 动态生成Rss文件

* @param info  List  name

* @return

* @throws IOException

* @throws JDOMException

*/

public EiInfo BuildXMLDoc(EiInfo info) throws IOException, JDOMException {

EiInfo outInfo = new EiInfo();

ServiceEC0001 service = new ServiceEC0001();

try {

List list = (List) info.get("articleList");

String name = info.getString("name");

if (list != null && list.size() > 0) {

ECUtil util = new ECUtil();

ECRS01 rs = (ECRS01) list.get(0);

//获取站点对象

Tecsm01 tecsm01 = (Tecsm01) util.getSiteByArtId(rs.getLink());

//_rss创建站点别名子文件夹

String url = TemplateUtils.getWebContentPath() + "_rss/"+ tecsm01.getSiteAlias() + "/";

File file = new File(url);

if (!file.exists()) {

file.mkdir();

}

//访问站点URL

String url1 = service.cutString(TemplateUtils.getSiteLink(tecsm01.getSiteId()))+"/index.html";

//创建根节点

Element root = new Element("root");

//创建子节点

Element channel = new Element("channel");

//子节点添加属性,创建rss头部所需元素。

channel.addContent(new Element("title").setText(tecsm01.getSiteName()));

channel.addContent(new Element("link").setText(url1));

channel.addContent(new Element("description").setText(""));

//channel节点添加到root节点中;

root.addContent(channel);

//root节点添加到文档中;

Document Doc = new Document(root);

// 此处 for 循环可替换成 遍历 数据库表的结果集操作;

for (int j = 0; j < list.size(); j++) {

rs = (ECRS01) list.get(j);

String path = service.cutString(TemplateUtils.getArticleMonthLinkById(rs.getLink()));

//日期格式化

String date = rs.getPubDate();

String date1 = date.substring(0,4)+"-"+date.substring(4,6)+"-"+date.substring(6,8)+" "+

date.substring(8,10)+":"+date.substring(10,12)+":"+date.substring(12);

// 创建节点 item;

Element elements = new Element("item");

// 给 item 节点添加子节点并赋值;

elements.addContent(new Element("title").setText(rs.getTitle()));

elements.addContent(new Element("link").setText(path));

elements.addContent(new Element("pubDate").setText(date1));

elements.addContent(new Element("author").setText(rs.getAuthor()));

ServiceEC0001 serviceEC0001 = new ServiceEC0001();

String textStr = serviceEC0001.Html2Text(rs.getDescription());

if (textStr.length() > 100) {

textStr = textStr.substring(0, 100) + "..";

}

elements.addContent(new Element("description").setText(textStr));

//将item添加到channel节点中

channel.addContent(elements);

}

XMLOutputter XMLOut = new XMLOutputter();

//1.首行缩进对输出格式进行美化 2.处理Xml中文编码问题。

Format format = Format.getPrettyFormat();

format.setEncoding("utf-8");

XMLOut.setFormat(format);

// 输出 rss 文件;

XMLOut.output(Doc, new FileOutputStream(file + "/"+ name + ".xml"));

outInfo.setStatus(1);

outInfo.setMsg("创建Rss文件成功!");

}

} catch (Exception e) {

outInfo.setStatus(-1);

outInfo.setMsg("------------------创建Rss文件失败!------------------");

e.printStackTrace();

}

return outInfo;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值