添加RSS到asp.net网站的方法加代码

                         添加RSSasp.net网站

 

1.      RSS也叫聚合RSS是在线共享内容的一种简易方式(也叫聚合内容,Really Simple Syndication)。通常在时效性比较强的内容上使用RSS订阅能更快速获取信息,网站提供RSS输出,有利于让用户获取网站内容的最新更新。

 以下是RSS 2.0的代码样例

  <!-- XML版本和字符集 -->

  <?xml version="1.0"?>

  <!-- RSS版本 -->

  <rss version="2.0">

  <!-- 以下为频道信息及新闻列表 -->

  <channel>

  <!-- 频道总体信息:开始 -->

  <!-- 频道标题 -->

  <title>Lift Off News</title>

  <!-- 频道链接的总地址 -->

  <link>http://liftoff.msfc.nasa.gov/</link>

  <!-- 频道描述文字 -->

  <description>Liftoff to Space Exploration.</description>

  <!-- 频道使用的语言(zh-cn表示简体中文) -->

  <language>en-us</language>

  <!-- 频道发布的时间 -->

  <pubDate>Tue, 10 Jun 2003 04:00:00 GMT</pubDate>

  <!-- 频道最后更新的时间-->

  <lastBuildDate>Tue, 10 Jun 2003 09:41:01 GMT</lastBuildDate>

  <docs>http://blogs.law.harvard.edu/tech/rss</docs>

  <!-- 频道生成器 -->

  <generator>Weblog Editor 2.0</generator>

  <managingEditor>editor@example.com</managingEditor>

  <webMaster>webmaster@example.com</webMaster>

  <ttl>5</ttl>

  <!-- 频道总体信息:结束 -->

  <!-- 每条RSS新闻信息都包含在item节点中, -->

  <item>

  <!-- 新闻标题 -->

  <title>Star City</title>

  <!-- 新闻链接地址 -->

  <link>http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp</link>

  <!-- 新闻内容简要描述 -->

  <description>How do Americans get ready to work with Russians aboard the

  International Space Station? They take a crash course in culture, language

  and protocol at Russia's Star City.</description>

  <!-- 新闻发布时间 -->

  <pubDate>Tue, 03 Jun 2003 09:39:21 GMT</pubDate>

  <!-- 新闻目录 -->

  <category>IT</category>

  <!-- 新闻作者 -->

  <author>bill</author>

<guid>http://liftoff.msfc.nasa.gov/2003/06/03.html#item573</guid>   </item>

 

2.  如何添加RSS订阅(用于后台管理系统)

代码如下:

XmlDocument doc = new XmlDocument();

 

            if (this.txtRssUrl.Text != "")

            {

                try

                {

                    //创建保存RSS新闻的类

                    RssDB rssdb = new RssDB();

                    rssdb.AddDate = DateTime.Now;

                    int rsscount=0;

                    doc.Load(this.txtRssUrl.Text.Trim());

                    XmlNodeList nodelist = doc.GetElementsByTagName("item");

 

                    int rssLoadCount =Convert.ToInt32(this.txtRssCount.Text.Trim());

                   

                    int i = 0;

                    if (doc.HasChildNodes)

                    {

                        foreach (XmlNode node in nodelist)

                        {

                            i += 1;

                            if (node.HasChildNodes)

                            {

                                foreach (XmlNode node1 in node.ChildNodes)

                                {

                                    switch (node1.Name)

                                    {

                                        case "title":

                                            rssdb.Title=node1.InnerText;

                                            break;

                                        case "link":

                                            rssdb.Url = node1.InnerText;

                                            break;

                                        case "description":

                                            rssdb.Description = node1.InnerText;

                                            break;

                                        case "pubDate":

                                            rssdb.AddDate = DateTime.Now;

                                            break;

 

                                    }

                                  

                                }

                                rsscount = RssDBBLL.AddRssDB(rssdb);

                            }

 

                            if (i > rssLoadCount)

                                break;

                           

 

                        }

 

                        if (rsscount >0)

                        {

                            Response.Redirect("RssManager.aspx");

                        }

                    }

                }

                catch (Exception ex)

                {

                    Response.Write(ex.Message);

                }

            }

 

然后订阅其他网站,就保存到网站的数据库,以便与显示

 

3.  如何显示RSS(用于前台显示页面)

<asp:repeater id="Repeater1" runat="server">

            <HeaderTemplate>

              <%--  <?xml version="1.0" encoding="GB2312" ?>    --%>

                <rss version="2.0">

                     <channel>

                            <title> </title>

                            <link> </link>

                            <description> </description>

                           <%-- <language>zh_cn</language>--%>

                            <pubdate><%=DateTime.Now%></pubdate>

        <%--               <image>

                             <title><%=Title%></title>

                             <url></url>

                             <link><%=Url%></link>

                            </image>--%>

            </HeaderTemplate>

            <ItemTemplate>

                <item>

                     <title><%# FormatForXML(DataBinder.Eval(Container.DataItem, "Title"))%></title>

                    <%-- <description><![CDATA[<%# FormatForXML(DataBinder.Eval(Container.DataItem,"Content")) %>]]></description> --%>

                     <link>http://www.fybc.net/Newsfybc.aspx?newsId=<%# DataBinder.Eval(Container.DataItem, "NewsId")%></link>

                   <%-- <description>[<%# FormatForXML(DataBinder.Eval(Container.DataItem,"Content")) %>]</description> --%>

                     <%--<description>[<%# DataBinder.Eval(Container.DataItem,"Content") %>]</description> --%>

                     <pubdate><%# String.Format("{0:D}", DataBinder.Eval(Container.DataItem, "AddDate"))%></pubdate>      

                </item>

            </ItemTemplate>

            <FooterTemplate>

                 </channel>

              </rss>

            </FooterTemplate>

</asp:repeater>

后台代码:

//声明三个受保护类型的字符串。

        protected string Titles = "";

        protected string Url = "";

        protected string AddDate = "";

        protected string Description = "";

        protected string FromWhere = "";

 

 

        //page_load中或者你自己定义个方法

        protected void Page_Load(object sender, EventArgs e)

        {

            if (!IsPostBack)

            {

                Titles = "";

                Description = "";

                Url = @"website";

                AddDate = String.Format("{0:D}", DateTime.Now);

               // Response.ContentType = "text/xml";

                string sqlNews = "select top 20 * from News order by AddDate desc";

 

                string sqltxt = "select top 10 * from RssDB order by AddDate desc";

                string sqltxtAll = "select * from RssDB order by AddDate desc";

                DataTable dt = DBConnection(sqlNews);//此类下面将提到。

 

                this.Repeater1.DataSource = dt;

                this.Repeater1.DataBind();

 

                //this.Repeater1.DataSource = NewsBLL.GetAllNewsRetrunList();

                //this.Repeater1.DataBind();

 

 

            }

 

        }

 

        //定义一个函数。如果你看了最前面的html代码,你就会发现有个formatforxml..

        protected string FormatForXML(object input)

        {

            string data = input.ToString();

            data = data.Replace("'", "&apos;");

            data = data.Replace("&lt;", "<");

            data = data.Replace("&gt;", ">");

            return data;

        }

 

        //DB.DBConnection(string sqltxt)解析,其实他的目的就是返回一个datatable

        public static DataTable DBConnection(string sqlstr)

        {

            DataSet ds = SqlHelper.GetInfoDataSet(sqlstr);

           

 

            return ds.Tables[0];//返回该对象

        }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值