DATATABLE转RSS

看到有人写
XML数据与数据集之间的相互转化

我好象用不着XML这个,不如直接搞个RSS吧,实用些。

  1using System;
  2using System.Collections.Generic;
  3using System.Text;
  4using System.Data;
  5using Rss;
  6using System.Xml;
  7namespace buildRss
  8{
  9    class buildRss
 10    {
 11        /// <summary>
 12        /// 此类是将传入的DataTable对象进行转化为RSS对象RSSfeed
 13        /// 用writeRSS()方法输出到设备流,这里主要是输出到服务器返回流
 14        /// getRss(string fileName)方法用来将DataTable对象以RSS保存到文件中
 15        /// DataTable对象的列要求,1:ID,2:名称,3:作者,4:描述,5:连接地址
 16        /// </summary>

 17        private DataTable dt;
 18        private Rss.RssFeed rfeed;
 19        public buildRss()
 20        { }
 21        public buildRss(System.Data.DataTable DT)
 22        {
 23            dt = DT;
 24        }

 25        /// <summary>
 26        /// 将DataTable对象写入RSSfeed对象
 27        /// </summary>
 28        /// <returns></returns>

 29        private Rss.RssFeed RssFactory()
 30        {
 31            if (dt == null)
 32                throw new Exception("传入的DataTable对象为空!");
 33            if (dt.Rows.Count < 1)
 34                throw new Exception("DataTable对象中无数据!");
 35            if (dt.Columns.Count < 5)
 36                throw new Exception("传入的DataTable对象中列数不符合规定!");
 37            Rss.RssFeed rf = new RssFeed();
 38            rf.Encoding = System.Text.Encoding.GetEncoding("gb2312");
 39            rf.Version = RssVersion.RSS20;
 40            RssItem ri = new RssItem();
 41            RssChannel rc = new RssChannel();
 42            rc.Title = "Test Channel Title 1";
 43            rc.Description = "Test Channel Description 1";
 44            rc.Link = new Uri("http://www.lutoo.com");
 45            rc.PubDate = DateTime.Now;
 46            for (int i = 0; i < dt.Rows.Count;i++ )
 47            {
 48                ri.Author = dt.Rows[i][2].ToString();
 49                ri.Title = dt.Rows[i][1].ToString();
 50                ri.Description = dt.Rows[i][3].ToString();
 51                ri.Link = new Uri(dt.Rows[i][4].ToString());
 52                ri.PubDate = DateTime.Now;
 53                rc.Items.Add(ri);
 54            }

 55            rf.Channels.Add(rc);
 56            return rf;
 57        }

 58        /// <summary>
 59        /// 传入文件路径带文件名,将RSS写入该文件
 60        /// </summary>
 61        /// <param name="fileName">文件名</param>

 62        public void getRss(string fileName)
 63        {
 64            try
 65            {
 66                rfeed = this.RssFactory();
 67                rfeed.Write(fileName);
 68            }

 69            catch(Exception e)
 70            {
 71                System.Console.Out.WriteLine(e.Message.ToString());
 72            }

 73        }

 74        /// <summary>
 75        /// 返回RSS字符串
 76        /// </summary>
 77        /// <returns>返回RSS字符串</returns>

 78        public string getRss()
 79        {
 80            try
 81            {
 82                rfeed = this.RssFactory();
 83            }

 84            catch (Exception e)
 85            {
 86                System.Console.Out.WriteLine(e.Message.ToString());
 87            }

 88
 89            return rfeed.ToString();
 90        }

 91        /// <summary>
 92        ///把RSS内容写到流中
 93        /// </summary>
 94        /// <param name="stream">要写入的流,指Response.OutputStream</param>

 95        public void writeRSS(System.IO.Stream stream)
 96        {
 97            try
 98            {
 99                rfeed = this.RssFactory();
100                rfeed.Write(stream);
101            }

102            catch (Exception e)
103            {
104                System.Console.Out.WriteLine(e.Message.ToString());
105            }

106        }

107        /*RssFeed feed = new RssFeed();
108feed.Channels.Add(channel);
109Response.ContentType = "text/xml";
110feed.Write(Response.OutputStream);
111Response.End();
112*/

113    }

114}
需要RSS.NET.dll 
原文地址:https://www.cnblogs.com/xewnwsl2001/p/739470.html