技术文章 > Web2.0时代,RSS你会用了吗?

Web2.0时代,RSS你会用了吗?

2018-07-20 09:13

文档管理软件,文档管理系统,知识管理系统,档案管理系统的技术资料:
如见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
[code]
csharp
class ExampleOfLegalsoft
{
private void Page_Load(object sender, System.EventArgs e)
{
Response.ContentType = "text/xml";
Response.Write(GetRSS());
}
///
/// 取得聚合文章
///

///
public string GetRSS()
{
News t = new News();//自己的业务类
DataSet ds = t.GetListByClass(1);//根据类别得到数据

StringBuilder strCode = new StringBuilder();
strCode.Append("");
strCode.Append(" 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("");
strCode.Append("RSSDemo");
strCode.Append("http://" + Request.ServerVariables["SERVER_NAME"] + " ");
strCode.Append("天道酬勤 ");
strCode.Append("Copyright 2005 ");

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();
strCode.Append("");
strCode.Append("" + title + "");
strCode.Append("http://" + Request.ServerVariables["SERVER_NAME"] + "/NewsShow.aspx?ID=" + Id + "");
strCode.Append("" + description + "");
strCode.Append("");
strCode.Append("" + pubdate + "");
strCode.Append("" + ClassId + "");
strCode.Append("
");
}
strCode.Append("
");
strCode.Append("
");
return strCode.ToString();
}
}
[/code]

2.在线RSS阅读获取。

页面代码:


Feed种子:

显示条数:








后台代码:
[code]
csharp
class ExampleOfLegalsoft
{
///
/// 获得要显示的Feed种子数据
///

///
///
///
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 += "" + title + "
";
}
}
}
}
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)); //获取指定数目
}
}
[/code]

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

<%@ Page language="c#" Codebehind="XmlHttp.aspx.cs" AutoEventWireup="false" Inherits="LiTianPing.XmlHttp" %>



XmlHttp















数据载入中...