网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

.net生成评论RSS(附实例源码)

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

(实例下载)这个示例由两部分组成,第一部分是个静态HTML页面,根据文章URL生成并转向至其RSS链接。寥寥数行HTML和JavaScript

<html xmlns="/uploadfile/201101/20/7415122123.gif" />public class CommentRss : IHttpHandler
{
    public void ProcessRequest(HttpContext context)
    {
        string url = context.Request.QueryString["url"];

        WebClient webClient = new WebClient();
        webClient.Encoding = Encoding.UTF8;
        string html = webClient.DownloadString(url);

        context.Response.ContentType = "text/xml";
        context.Response.ContentEncoding = Encoding.UTF8;

        SyndicationFeed feed = GetRssFeed(url, html);
        Rss20FeedFormatter rssFormatter = new Rss20FeedFormatter(feed);
        XmlWriter rssWriter = XmlWriter.Create(context.Response.Output);
        rssFormatter.WriteTo(rssWriter);
        rssWriter.Close();
    }


    private static SyndicationFeed GetRssFeed(string url, string html)
    {
        
    }


    public bool IsReusable { get { return false; } }
}

 

其实.NET框架已经为我们准备了太多太多有用的工具,我们只需要将它们拼接起来即可。例如有了WebClient类,三行代码便可下载到页面的HTML。然后我们通过GetRssFeed方法来获得一个SyndicationFeed对象,再通过Rss20FeedFormatter输出。SyndicationFeed和Rss20FeedFormatter都是.NET 3.5中自带的类库,放在System.ServiceModel.dll程序集中的System.ServiceModel.Syndication命名空间里,可以方便读取或生成Atom 1.0或RSS 2.0格式的XML为我们所用。

GetRssReed的关键在于分析HTML字符串,老赵在这里使用了正则表达式匹配出每条评论的标题、URL、时间、用户和内容。然后构造出一个SyndicationFeed对象就再简单不过了。可惜的是,博客园不同模板的HTML不同,因此老赵的这个示例只支持现在用的这个模板。您可以自己改造,例如为CommentRss.ashx增加一个新的参数,用于指名HTML的解析方式,便可以用于多个模板了。

  这个示例使用起来也非常简单,您可以将其编译或部署在本地的IIS上,打开Default.html页面,将文章的URL复制进去
 

 

点击按钮,便会链接至RSS页。于是在IE中便会展示为:

此时您只要把URL放入本地的RSS阅读器即可。因为程序部署在您的机器上,因此您无法使用Google Reader等工具进行订阅。如果您有条件的话,把它们放到虚拟空间等地方即可。由于您的程序只为您一个人服务,因此不会占用大量资源,目前的写法也足够了。

  我们是程序员。自己动手,丰衣足食。
 

  • 上一篇资讯: asp.net中的n种path
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师