标签:
1.RssFeed实体类
1 /// <summary> 2 /// RssFeed实体类 3 /// </summary> 4 public class RssFeed 5 { 6 /// <summary> 7 /// 标题 8 /// </summary> 9 public string Title { get; set; } 10 11 /// <summary> 12 /// 链接 13 /// </summary> 14 public string Link { get; set; } 15 16 /// <summary> 17 /// 描述 18 /// </summary> 19 public string Description { get; set; } 20 21 /// <summary> 22 /// 发表时间 23 /// </summary> 24 public DateTime PublishDate { get; set; } 25 }
2.RssFeed帮助类
1 /// <summary> 2 /// RssFeedHelper 3 /// </summary> 4 public static class RssFeedHelper 5 { 6 /// <summary> 7 /// 生成RssFeed 8 /// </summary> 9 /// <param name="rssFeedList">RssFeed列表</param> 10 /// <returns>RssFeed</returns> 11 public static XDocument GetRssFeed(List<RssFeed> rssFeedList) 12 { 13 XElement channel = new XElement("channel"); // channel节点 14 channel.Add(new XElement[]{ 15 new XElement("title","Test"), // channel标题 16 new XElement("link","http://localhost"), // 页面链接 17 new XElement("description","Test RSS") // channel描述 18 }); 19 20 foreach (var rssFeed in rssFeedList) // 对rssFeed集合中的每个元素进行处理 21 { 22 XElement item = new XElement("item", new XElement[]{ // 生成一个新的item节点 23 new XElement("title",rssFeed.Title), // 为新的item节点添加子节点 24 new XElement("description",rssFeed.Description), 25 new XElement("link",rssFeed.Link), 26 new XElement("pubDate",rssFeed.PublishDate) 27 }); 28 channel.Add(item); // 将新的item节点添加到channel中 29 } 30 31 XDocument doc = new XDocument( 32 new XDeclaration("1.0", "utf-8", "yes"), // XML文档声明 33 new XElement("rss", // 根节点 34 new XAttribute("version", "2.0"), // rss节点的属性 35 new XElement(channel // rss的子节点channel 36 ))); 37 38 return doc; 39 } 40 }
3.创建RssFeedResult类,继承自ActionResult,以便在ASP.NET MVC的controller中返回RSS。
1 public class RssFeedResult : ActionResult 2 { 3 List<RssFeed> Data { get; set; } 4 5 public RssFeedResult(List<RssFeed> data) 6 { 7 Data = data; 8 } 9 10 public override void ExecuteResult(ControllerContext context) 11 { 12 if (context == null) 13 { 14 throw new ArgumentNullException("context"); 15 } 16 17 HttpResponseBase response = context.HttpContext.Response; 18 response.ContentType = "text/xml"; // 设置HTTP头中的ContentType 19 XDocument result= RssFeedHelper.GetRssFeed(Data); // 获取XML数据 20 response.Write(result.ToString()); // 将XML数据写入response中 21 } 22 }
4.在controller中调用RssFeedResult(rss)方法即可返回RSS页面
1 <rss version="2.0"> 2 <channel> 3 <title>channel标题</title> 4 <link>网页地址</link> 5 <description>channel描述</description> 6 <item> 7 <title>内容1标题</title> 8 <description>内容1描述</description> 9 <link>内容1链接</link> 10 </item> 11 <item> 12 <title>内容2标题</title> 13 <description>内容2描述</description> 14 <link>内容2链接</link> </item> 15 </channel> 16 </rss>
标签:
原文地址:http://www.cnblogs.com/MoWu/p/5485962.html