private void createRss()
{
//还是从数据库里读数据
XXXXContext bd = new XXXXContext();
var sq = from p in bd.news orderby p.ID descending select new { p.ID, p.title, p.cont,p.in_date, p.n_type };
//这里用到了SyndicationFeed详细介绍请参见上面附的msdn地址SyndicationFeed有6个重载的方法,根据自己需要选择吧
SyndicationFeed feed = new SyndicationFeed("半途的Rss", "半途个人网站,包括个人相册", new Uri("http://www.bantool.cn"), "Bantool", DateTime.Now);
//这里可以添加feed的各种属性,如:Authors、Copyright、ImageUri等等,具体请参考msdn上SyndicationFeed详细介绍,这里只是为了改造一下上次的例子就不再写具体的属性了
//举个例子吧
feed.Authors.Add(new SyndicationPerson("ziie@tom.com", "WeiYuan", "http://www.bantool.cn"));
//list用来存放SyndicationItem
List<SyndicationItem> items = new List<SyndicationItem>();
//循环添加item 博客园里(Juzz Pig(橘子&猪) )回复说的XmlSerializer ser = new XmlSerializer(typeof(sq)); ser.Serialize(Response.OutputStream, sq); 这个我还没有研究,暂时先用foreach吧
foreach (var p in sq)
{
//这里用到SyndicationItem,详细介绍还是看msdn吧,他有4个方法重载
SyndicationItem item = new SyndicationItem(p.title, p.cont, new Uri("http://www.bantool.cn/new" + p.ID + ".bantool"), p.ID.ToString(), DateTime.Now);
//这里也是可以添加item的各个属性,如类别,作者等
item.Categories.Add(new SyndicationCategory(p.n_type));
//把item添加到list里
items.Add(item);
}
feed.Items = items;
//如果是aspx页面输出
Response.ContentType = "text/xml";
Rss20FeedFormatter rssfm = new Rss20FeedFormatter(feed);
XmlWriter rssWriter = new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8);
rssfm.WriteTo(rssWriter);
rssWriter.Close();
//如果是写入文件
//XmlWriter rssWriter = XmlWriter.Create("rss.xml");
//Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(feed);
//rssFormatter.WriteTo(rssWriter);
//rssWriter.Close();
}