菜单

Web2.0一代,RSS你会用了啊?_CSDN

2018年11月14日 - 注册免费送38元体验金

Web2.0期,RSS你见面就此了为?_CSDN

如若见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"\]+"&lt;/link&gt;
“);
   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+"&lt;/link&gt;”);
    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();
  }

2.当线RSS阅读获取。

页面代码:
  <P style=”FONT-SIZE: 11px”>
   Feed种子:<asp:TextBox id=”FeedUrl” runat=”server”
Width=”440px”></asp:TextBox><BR>
   显示条数:<asp:TextBox id=”Num” runat=”server”
Width=”48px”></asp:TextBox></P>
  <P style=”FONT-SIZE: 11px”>
   <asp:Button id=”GetFeed” runat=”server”
Text=”获得RSS”></asp:Button><BR>
   <BR>
   <asp:Label id=”RssFeed”
runat=”server”></asp:Label></P>

后台代码:
  /// <summary>
  /// 获得要展示的Feed种子数据
  /// </summary>
  /// <param name=”RssUrl”></param>
  /// <param name=”showNewsCount”></param>
  /// <returns></returns>
  public string LoadRSS(string RssUrl, int showNewsCount)
  {
   string strRssList = “”;
   string strMsg;
   try
   {      
    XmlDocument objXMLDoc = new XmlDocument();   
    objXMLDoc.Load(RssUrl);  
    XmlNodeList objItems = objXMLDoc.GetElementsByTagName(“item”);    
  
    if(showNewsCount > 30)
     showNewsCount = 10;  
    if(showNewsCount < 1)
     showNewsCount = objItems.Count;
  
    string title=””;
    string link=””; 
    int i;

    if(objXMLDoc.HasChildNodes == true)
    {
     i = 1;
        foreach(XmlNode objNode in objItems)
     {
      if(i<=showNewsCount)
      {
       if(objNode.HasChildNodes == true)
       {
        XmlNodeList objItemsChild = objNode.ChildNodes;
        foreach(XmlNode objNodeChild in objItemsChild)
        {
         switch(objNodeChild.Name)
         {
          case “title”:
           title = objNodeChild.InnerText;
           break;
          case “link”:
           link = objNodeChild.InnerText;
           break;          
         }         
        }
        i = i+1;
        strRssList += “<a href=” + link +” target=_blank>” +
title + “</a><br>”; 
       }      
      }
     }       
    }
    strMsg = strRssList;
   }
   catch
   {
    strMsg = “RSS Feed 源数据出错!”;
   }
   return strMsg;
  }

  //获取按钮,获取指定RSS
  private void GetFeed_Click(object sender, System.EventArgs e)
  {
   if(FeedUrl.Text == “”)//RSS地址
   {
    RssFeed.Text = “信息来源不能够也空,您可刷新重试或联系管理员!”;
    return ;
   }  
   RssFeed.Text = LoadRSS(FeedUrl.Text,Convert.ToInt32(Num.Text));
//获取指定数目 
  }

3.任刷新动态更新的在线RSS阅读获取

<%@ Page language=”c#” Codebehind=”XmlHttp.aspx.cs”
AutoEventWireup=”false” Inherits=”LiTianPing.XmlHttp” %>
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN” >
<HTML>
 <HEAD>
  <title>XmlHttp</title>
  <meta name=”GENERATOR” Content=”Microsoft Visual Studio .NET
7.1″>
  <meta name=”CODE_LANGUAGE” Content=”C#”>
  <meta name=”vs_defaultClientScript” content=”JavaScript”>
  <meta name=”vs_targetSchema”
content=”http://schemas.microsoft.com/intellisense/ie5″>
  <style>td { font-size: 9pt}
  </style>
  <script>
  <!– 
  var oDiv
  var xh    
  function getXML()
  {   
   xh =new ActiveXObject(“Microsoft.XMLHTTP”);
   oDiv = document.getElementById(“rssitem”);
   oDiv.style.display= “”;
   try
   {
    //如果是本土转移成为下面告诉句直接读取
    //xh.open(“GET”,”/Rss.aspx”,false);    
    xh.open(“GET”,”Http://ltp.cnblogs.com/Rss.aspx”,false);
    xh.send(null);
    loadData(xh,oDiv);
   }
   catch(e)
   {
    error(oDiv);
   }
  }
  function loadData(xh,oDiv)
  {
   if (xh.readyState == 4)
   {
    xml = xh.responsexml;
    var i;
    var nodes = xml.selectNodes(“/rss/channel/item”);
    var bloglink = xml.selectSingleNode(“/rss/channel/link”).text;
    oDiv.innerHTML = “”;
    var html;    
    for(i=0;i<nodes.length;i++)
    {    
        
      html += “<div >”;
      html += ”    <div >”;
      html += ”        <a class=font1 href='”
+nodes[i].selectSingleNode(“link”).text + “‘ target=’_blank’>” +
nodes[i].selectSingleNode(“title”).text
+”</a><BR><BR>”;
      html += ”    </div>”;
      html += ”    <div >”;
      html += ”        ”
+nodes[i].selectSingleNode(“description”).text;
      html += ”    </div>”           
      //html += ”    </div>”;
      html += “</div><hr>”;

    }
    oDiv.innerHTML = html;
   }
   else
   {
    error(oDiv);
   }
  }

  function error(oDiv)
  {
   oDiv.innerHTML = “载入失败”;
  }
  –>
  </script>
 </HEAD>
 <body MS_POSITIONING=”GridLayout”
onload=”window.setTimeout(‘getXML()’,200);”>
  <form id=”Form1″ method=”post” runat=”server”>
   <div align=center>
   <table cellpadding=”0″ cellspacing=”0″ border=”0″
width=”80%”>
    <tr>
     <td>
      <div id=”rssitem”
style=”WIDTH:80%”>数据载入中…</div>
     </td>
    </tr>
   </table>
   </div>
  </form>
 </body>
</HTML>

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图