如见Web2.0被吵的如火如荼,同时也有很多的评论褒贬不一。有人说Web2.0就是“一帮人在看皇帝的新装而已”。也有人说 Web2.0将是一场变革。无论这些争论有没有价值,但我相信,存在就有它的必然性。也许Web2.0更像是一种商业模式,一个观念的变革而非技术。
     不管怎样,它来了,你准备好了吗?
     说到Web2.0,就会提到Blog、TAG、SNS、RSS、wiki这些软件应用和xml、ajax等这些新理论和技术实现。
RSS毋容置疑就是其重要的应用之一。

     那么什么是RSS?它到底有什么用呢?

     RSS是站点与站点之间共享内容的一种简易方式(也称为“聚合内容”),通常被用于新闻和其他按顺序排列的网站,例如Blog网站。网站 提供RSS输出,有利于让用户发现网站内容的更新。网站用户可以在客户端借助于类似新闻资讯阅读器等支持RSS的新闻聚合工具软件,在不打开网站内容页面 的情况下阅读支持RSS输出的网站内容。
     RSS是基于XML的一种形式。并且所有的RSS文件都要遵守万维网联盟(W3C)站点发布的XML 1.0规范。具体格式可以查一下RSS 2.0规范,这里就不再重复粘贴了。

下面是我总结的几种RSS的技术实现代码:

1.在线生成RSS聚合页

(1)创建Rss.aspx
<%@ Page language="c#" Codebehind="Rss.aspx.cs" AutoEventWireup="false" Inherits="LiTianPing.Rss" %>
只留下这一行,其余的都删掉。

(2)后台代码;Rss.aspx.cs

  private void Page_Load(object sender, System.EventArgs e)
  {    
   Response.ContentType="text/xml";
   Response.Write(GetRSS());
  }

  /// <summary>
  /// 取得聚合文章
  /// </summary>
  /// <returns></returns>
  public string GetRSS()
  {
   News t=new News();//自己的业务类
   DataSet ds=t.GetListByClass(1);//根据类别得到数据
   
   StringBuilder strCode=new StringBuilder();
   strCode.Append("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>");
   strCode.Append("<rss version='2.0' xmlns:dc=\"http://purl.org/dc/elements/1.1/\"");
   strCode.Append(" xmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\" ");
   strCode.Append(" xmlns:wfw=\"http://wellformedweb.org/CommentAPI/\" xmlns:slash=\"http://purl.org/rss/1.0/modules/slash/\">");
   strCode.Append("<channel>");
   strCode.Append("<title>李天平RSSDemo</title>");
   strCode.Append("<link>http://"+Request.ServerVariables["SERVER_NAME"]+"</link> ");
   strCode.Append("<description>天道酬勤</description> ");  
   strCode.Append("<copyright>Copyright 2005</copyright> ");      
   
   foreach(DataRow row in ds.Tables[0].Rows)
   {
    string Id=row["Id"].ToString();
    string title=row["title"].ToString();
    string description=row["description"].ToString();
    string pubdate=row["pubdate"].ToString();
    string ClassId=row["ClassId"].ToString();
    //string author=row["author"].ToString();

    strCode.Append("<item>");
    strCode.Append("<title>"+title+"</title>");
    strCode.Append("<link>http://"+Request.ServerVariables["SERVER_NAME"]+"/NewsShow.aspx?ID="+Id+"</link>");
    strCode.Append("<subject>"+description+"</subject>");
    strCode.Append("<description><![CDATA["+description+"]]></description>");    
    strCode.Append("<PubDate>"+pubdate+"</PubDate>");
    strCode.Append("<category>"+ClassId+"</category>");
    strCode.Append("</item>");    
   }
   strCode.Append("</channel>");
   strCode.Append("</rss>");  
   return strCode.ToString();
  }

 (3) XmlTextWriter实现方式2;Rss.aspx.cs

  string xmlDoc="rss.xml"; 
 private void Page_Load(object sender, System.EventArgs e)
  {    
   xmlDoc=Server.MapPath(".")+xmlDoc;   
   GetRSS2();
   XmlDocument doc= new XmlDocument();
   doc.Load(xmlDoc);
   Response.ContentType = "text/xml";
   doc.Save(Response.Output);
  }
  /// <summary>
  /// 取得聚合文章
  /// </summary>
  /// <returns></returns>
  public void GetRSS2()
  {
   News t=new News();
   DataSet ds=t.GetListByClass(1);
   
   XmlTextWriter writer = new XmlTextWriter(xmlDoc,Encoding.UTF8);
   writer.Formatting = Formatting.Indented;
   writer.WriteStartDocument(true);
   writer.WriteComment("RSS页的实现");
   writer.WriteStartElement("rss");
   writer.WriteAttributeString("version","2.0");      
   writer.WriteStartElement("channel");   
   writer.WriteStartElement("title");
   writer.WriteString("李天平RSSDemo");
   writer.WriteEndElement();
   writer.WriteStartElement("link");   
   writer.WriteString("http://"+Request.ServerVariables["SERVER_NAME"]);
   writer.WriteEndElement();   
   writer.WriteStartElement("description");
   writer.WriteString("天道酬勤");
   writer.WriteEndElement();
   writer.WriteStartElement("copyright");
   writer.WriteString("Copyright 2005");
   writer.WriteEndElement();
   writer.WriteStartElement("language");
   writer.WriteString("zh-cn");
   writer.WriteEndElement();  
      
   foreach(DataRow row in ds.Tables[0].Rows)
   {
    string Id=row["Id"].ToString();
    string title=row["title"].ToString();
    string description=row["description"].ToString();
    string pubdate=row["pubdate"].ToString();
    string ClassId=row["ClassId"].ToString();
    //string author=row["author"].ToString();

    writer.WriteStartElement("item");
    writer.WriteStartElement("title");
    writer.WriteString(title);
    writer.WriteEndElement();
    writer.WriteStartElement("link");
    writer.WriteString("http://"+Request.ServerVariables["SERVER_NAME"]+"/NewsShow.aspx?ID="+Id) ;
    writer.WriteEndElement();
    writer.WriteStartElement("description");
    writer.WriteCData(description);
    writer.WriteEndElement();
    writer.WriteStartElement("pubDate");
    writer.WriteString(pubdate);
    writer.WriteEndElement();
    writer.WriteStartElement("category");
    writer.WriteString(ClassId);
    writer.WriteEndElement();
    writer.WriteEndElement();  
   }
   writer.WriteEndElement();
   writer.WriteEndElement();
   writer.Flush();
   writer.Close();
 
  }
2.在线RSS阅读获取。

页面代码:
  <P style="FONT-SIZE: 11px">
   Feed种子:<asp:TextBox >数据载入中...</div>
     </td>
    </tr>
   </table>
   </div>
  </form>
 </body>
</HTML>

相关文章:

  • 2022-01-23
  • 2022-01-17
  • 2022-12-23
  • 2021-11-15
  • 2021-06-10
猜你喜欢
  • 2021-10-28
  • 2022-01-05
  • 2022-02-19
相关资源
相似解决方案