rome+xslt rss解决方案

本文介绍了一个使用ROME库生成RSS文件的过程,并演示了如何利用XSLT将RSS文件转换成HTML页面的方法。文章详细展示了代码实现,包括设置RSS元数据、填充条目信息及转换配置。
rome生成rss文件
[code]
private static final String DEFAULT_FEED_TYPE = "default.feed.type";
private static final String FEED_TYPE = "type";
private static final String MIME_TYPE = "application/xml; charset=GB2312";
private static final String COULD_NOT_GENERATE_FEED_ERROR = "Could not generate feed";
private static final String DATE_FORMAT = "yyyy-MM-dd";
private String _defaultFeedType;

public void transferFunds(ArrayList<InfoGenre> genre,ArrayList<InfoPro> pro,String genreid){
String fileName="";
InfoGenre gen=genre.get(0);
try {
String feedType = "rss_2.0";//指定rss类型

String value = "";
Properties prop = new Properties();
String url=this.getClass().getResource("/rss.properties").getPath().trim();
url=url.replaceAll("%20"," ");
InputStream fis = new FileInputStream(url);
prop.load(fis);
value = prop.getProperty("address");

fileName = value+"//"+genreid+"//"+genreid+".xml";//静态rss存放目录
String xslpath=value;
DateFormat dateParser = new SimpleDateFormat(DATE_FORMAT);
//feed是通过SyndFeedImpl的实例
SyndFeed feed = new SyndFeedImpl();
feed.setFeedType(feedType);
feed.setTitle(gen.getName());
feed.setLink(gen.getLink());
feed.setDescription(gen.getDescription());
//SyndImage image=feed.getImage();
SyndImage image = new SyndImageImpl();
if(image!=null) {
//image.setLink(gen.getImagelink());
image.setUrl(gen.getImagelink());
image.setDescription(gen.getImagedes());
image.setTitle(gen.getImagetitle());
}
feed.setImage(image);
//entries就是item集合
List<SyndEntry> entries = new ArrayList<SyndEntry>();
//一个entry就是一个item
SyndEntry entry=null;
SyndContent description;

//第一个item
InfoPro program=null;
for(int i=0;i<pro.size();i++){
program=(InfoPro)pro.get(i);
entry = new SyndEntryImpl();
entry.setTitle(program.getTitle());
entry.setLink(program.getLink());
entry.setPublishedDate(dateParser.parse(program.getPublishtime()));
description = new SyndContentImpl();
description.setType("text/plain");
description.setValue(program.getDescription());
entry.setDescription(description);
entries.add(entry);
}

//将entries加入channel
feed.setEntries(entries);
File f=new File(value+"//"+genreid);
if(!f.exists()) f.mkdirs();
Writer writer = new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8");
SyndFeedOutput output = new SyndFeedOutput();

//更新客户对应栏目表isupdate字段,提示更新
if(gen.getIsupdate().equals("1")){
boolean flag=updateCusGenre(gen.getId());
}
boolean flag1=updateGenre(gen.getId());
//存盘,形成静态rss
output.output(feed,writer);
writer.close();

//存盘,形成静态html
Transform trans=new Transform();
trans.transForm(genreid, fileName, xslpath);

}
catch (Exception ex) {
ex.printStackTrace();
System.out.println("ERROR: "+ex.getMessage());
}
}
[/code]

rss+xslt转换html输出

[code]
public void transForm(String genreid,String rssPath,String xslPath){
try {
//取得xml和xsl流
StreamSource source = new StreamSource(rssPath);
StreamSource style = new StreamSource(xslPath+"//template.xsl");

//设置输出流,把生成的结果传送到输出流中。构造函数中的输出流也可以是其他形式。
String value = "";
Properties prop = new Properties();
String url=this.getClass().getResource("/rss.properties").getPath().trim();
url=url.replaceAll("%20"," ");
InputStream fis = new FileInputStream(url);
prop.load(fis);
value = prop.getProperty("address");
String fileName = value+"//"+genreid+"//"+genreid+".html";//静态h存放目录
Writer outfile = new OutputStreamWriter(new FileOutputStream(fileName), "UTF-8");
StreamResult result = new StreamResult(outfile);

//初始化转换器
TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer(style);

//设置生成html形式结果流的编码为GBK
transformer.setOutputProperty(OutputKeys.ENCODING,"GBK");

//设置html形式的流是有缩进格式的
transformer.setOutputProperty(OutputKeys.INDENT,"yes");

//转换并且输出流
transformer.transform(source,result);

}catch(Exception e) {
e.printStackTrace();
}
}

[/code]
本指南详细阐述基于Python编程语言结合OpenCV计算机视觉库构建实时眼部状态分析系统的技术流程。该系统能够准确识别眼部区域,并对眨眼动作与持续闭眼状态进行判别。OpenCV作为功能强大的图像处理工具库,配合Python简洁的语法特性与丰富的第三方模块支持,为开发此类视觉应用提供了理想环境。 在环境配置阶段,除基础Python运行环境外,还需安装OpenCV核心模块与dlib机器学习库。dlib库内置的HOG(方向梯度直方图)特征检测算法在面部特征定位方面表现卓越。 技术实现包含以下关键环节: - 面部区域检测:采用预训练的Haar级联分类器或HOG特征检测器完成初始人脸定位,为后续眼部分析建立基础坐标系 - 眼部精确定位:基于已识别的人脸区域,运用dlib提供的面部特征点预测模型准确标定双眼位置坐标 - 眼睑轮廓分析:通过OpenCV的轮廓提取算法精确勾勒眼睑边缘形态,为状态判别提供几何特征依据 - 眨眼动作识别:通过连续帧序列分析眼睑开合度变化,建立动态阈值模型判断瞬时闭合动作 - 持续闭眼检测:设定更严格的状态持续时间与闭合程度双重标准,准确识别长时间闭眼行为 - 实时处理架构:构建视频流处理管线,通过帧捕获、特征分析、状态判断的循环流程实现实时监控 完整的技术文档应包含模块化代码实现、依赖库安装指引、参数调优指南及常见问题解决方案。示例代码需具备完整的错误处理机制与性能优化建议,涵盖图像预处理、光照补偿等实际应用中的关键技术点。 掌握该技术体系不仅有助于深入理解计算机视觉原理,更为疲劳驾驶预警、医疗监护等实际应用场景提供了可靠的技术基础。后续优化方向可包括多模态特征融合、深度学习模型集成等进阶研究领域。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值