用.NET生成RSS文件,以便Rss阅读器订阅(转)
2009-08-27 01:16
477 查看
2009-08-14 11:24
http://hi.baidu.com/nirvanan/blog/item/a822e3cce2852d580fb3458b.html
GetRss.cs类 using System; using System.Collections.Generic; using System.Web; using System.Data; using System.Configuration; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; /// <summary> ///GetRss 的摘要说明 /// </summary> public class GetRss { /// <summary> /// 根据文件路径写RSS文件 /// </summary> /// <remarks> /// 例如: /// WriteRss("D:Vs2005GenerateRssRSS_Folder est_tb.xml","test_tb") /// 注意:根据表的结构,需要调整生成的RSS源。本实例仅供测试用。 /// </remarks> /// <param name="pathfilename">文件路径</param> /// <param name="tablename">表名</param> /// <returns>true or false</returns> public static bool WriteRss(string pathfilename, string tablename) { try { FileInfo finfo = new FileInfo(pathfilename); finfo.Delete();//先删除旧的 using (FileStream fs = finfo.OpenWrite()) { StreamWriter sw = new StreamWriter(fs, System.Text.Encoding.GetEncoding("UTF-8")); sw.WriteLine(GetRss.GetRSSString(tablename)); sw.Flush(); sw.Close(); } return true; } catch (System.Exception ex) { System.Web.HttpContext.Current.Response.Write(ex.Message); return false; throw; } } /// <summary> /// 组织符合最新标准的RSS字符串 /// 参数:表名。 /// </summary> /// <remarks> /// 例如: /// GetRSS() /// 注意:根据表的结构,需要调整生成的RSS源。本实例仅供测试用。 /// </remarks> /// <param name="tablename">表名</param> /// <returns>返回一个DataSet 数据源</returns> public static string GetRSSString(string Tablename) { try { DataSet ds =common.RunQuery("select * from tb_news");//common.RunQuery函数为自定查询函数,请自行定义。 string strRSS = ""; strRSS = strRSS + "<?xml version=\"1.0\"?> " + System.Environment.NewLine; strRSS = strRSS + "<rss xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance/"" + System.Environment.NewLine; strRSS = strRSS + " xmlns:xsd=\"http://www.w3.org/2001/XMLSchema/" " + System.Environment.NewLine; strRSS = strRSS + " xmlns:slash=\"http://purl.org/rss/1.0/modules/slash//" version=\"2.0\">" + System.Environment.NewLine; strRSS = strRSS + "<channel>" + System.Environment.NewLine; strRSS = strRSS + "<title>订阅标题</title> " + System.Environment.NewLine; strRSS = strRSS + "<link>http://www.Hellocom.cn/</link>" + System.Environment.NewLine; strRSS = strRSS + "<description>描述信息</description>" + System.Environment.NewLine; strRSS = strRSS + "<language>zh-CN</language>" + System.Environment.NewLine; strRSS = strRSS + "<generator>www.Hellocom.cn</generator> " + System.Environment.NewLine; strRSS = strRSS + "<copyright>北京Hello公司</copyright> " + System.Environment.NewLine; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { strRSS = strRSS + "<item>" + System.Environment.NewLine; strRSS = strRSS + "<title>" + ds.Tables[0].Rows[i]["cname"] + "</title> " + System.Environment.NewLine; strRSS = strRSS + "<link>http://www.Hello.com.cn/newsdetail/" + ds.Tables[0].Rows[i]["cid"] + ".html</link> " + System.Environment.NewLine; strRSS = strRSS + "<author /> " + System.Environment.NewLine; strRSS = strRSS + "<guid>http://www.Hello.com.cn/newsdetail/" + ds.Tables[0].Rows[i]["cid"] + ".html</guid> " + System.Environment.NewLine; strRSS = strRSS + "<pubDate>" + Convert.ToDateTime(ds.Tables[0].Rows[i]["ctime"].ToString()).ToString("yyyy-MM-dd HH:mm") + "</pubDate> " + System.Environment.NewLine; strRSS = strRSS + "<comments>http://www.Hello.com.cn/newsdetail/" + ds.Tables[0].Rows[i]["cid"] + ".html</comments> " + System.Environment.NewLine; strRSS = strRSS + "<slash:comments>0</slash:comments> " + System.Environment.NewLine; strRSS = strRSS + "<source url=\"http://www.Hello.com.cn/newsdetail/" + ds.Tables[0].Rows[i]["cid"] + ".html\">" + ds.Tables[0].Rows[i]["cname"] + "</source> " + System.Environment.NewLine; strRSS = strRSS + "<description>" + ds.Tables[0].Rows[i]["cname"] + "</description>" + System.Environment.NewLine; strRSS = strRSS + "</item>" + System.Environment.NewLine; } strRSS = strRSS + "</channel>" + System.Environment.NewLine; strRSS = strRSS + "</rss>" + System.Environment.NewLine; return strRSS; } catch (Exception ex) { System.Web.HttpContext.Current.Response.Write(ex.Message); throw; } } } =========================================================================== Default.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html> =========================================================================== Default.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string msg="生成成功!"; string Tablename = "News"; //Request.QueryString["TableName"]; string fname = System.Web.HttpContext.Current.Server.MapPath("RSS_Folder") + "\\" + Tablename + ".XML"; try { GetRss.WriteRss(fname, Tablename); } catch (System.Exception e11) { msg="生成时出错!"; } common.MsgBox(msg); } } =========================================================================== 建一个文件夹:RSS_Folder =========================================================================== common类中的 RunQuery函数 //运行查询 public static DataSet RunQuery(String QueryString) { // 声明连接字符串。本示例使用oledb //连接到#ZNaboodatabak_En.mdb数据库 OleDbConnection DBConnection = common.getConn(); OleDbDataAdapter DBAdapter; DataSet ResultsDataSet = new DataSet(); try { //运行查询并建立一个数据集 DBAdapter = new OleDbDataAdapter(QueryString, DBConnection); DBAdapter.Fill(ResultsDataSet); //关闭数据库连接 DBConnection.Close(); } catch (Exception ex) { //如果数据库连接仍然打开则关闭它 if (DBConnection.State == ConnectionState.Open) { DBConnection.Close(); } //MsgBox("无法连接到数据库!"); //System.Web.HttpContext.Current.Response.Write("<script>history.back(1);</script>"); //System.Web.HttpContext.Current.Response.Write(QueryString+"<br/>"); //System.Web.HttpContext.Current.Response.Write(ex); //System.Web.HttpContext.Current.Response.End(); } return ResultsDataSet; } |
相关文章推荐
- 用Asp.net生成RSS文件,以便Rss阅读器订阅(收藏的)
- 用Asp.net生成RSS文件,以便Rss阅读器订阅。
- Rss 订阅:php动态生成xml格式的rss文件
- .net动态生成RSS文件的方法
- .NET使用OpenSSL生成的pem密钥文件(增加size为2048的密钥转换)
- 基于.net技术的 Rss 订阅开发
- 【毕设资料】 Web版RSS阅读器(三)——解析在线Rss订阅
- 连接数据库,动态生成Rss feed(订阅号)
- 在.NET中的C# DLL文件的生成与使用
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)
- [转]使用.net 程序生成 Excel 和Access 文件
- 请大家订阅我的Blog的RSS,以便跟踪最新的Visual Assist X的破解补丁
- IT咨询顾问:一次吐血的项目救火 java或判断优化小技巧 asp.net core Session的测试使用心得 【.NET架构】BIM软件架构02:Web管控平台后台架构 NetCore入门篇:(十一)NetCore项目读取配置文件appsettings.json 使用LINQ生成Where的SQL语句 js_jquery_创建cookie有效期问题_时区问题
- JavaScript 解析 xml 文件 如 rss订阅
- RSS文章订阅及生成RSS格式的xml
- 用.net实现按透明度生成水印文件
- 移动项目开发笔记(.net根据模板生成Word文件(zt))
- .NET使用OpenSSL生成的pem密钥文件
- .NET生成CSV文件
- php 生成rss文件