RSS方式

我知道的兩種,以前就想寫了。有經驗的都知道,只是爲了給沒有接觸過的人提供點東西,可以參考。

第一種方式:

直接在前臺頁面創建格式xml

<?xml version="1.0" ?>

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="RSSAspx.aspx.cs" Inherits="WebApplication1.RSSAspx" %>

<rss version="2.0">
<channel>
<title>網站標題</title>
<description>也許很牛逼但是很牛逼還是很牛逼</description>
<link>網站地址</link>
<language>zh-cn</language>
<asp:Repeater runat="server" id="re">
<ItemTemplate>
<item>
<title><%#Eval("PTitle") %></title>
<link><%#Eval("PId", "http://localhost:9988/BookDetail.aspx?id={0}")%></link>
<pubDate><%#Eval("PTime") %></pubDate>
<source>XXX</source>
<author><![CDATA[<%#Eval("PUrl") %>]]></author>
<description><![CDATA[<%#Eval("PDes")%>]]></description> <%--<![CDATA[]]>是顯示文字如果有換行則給他添加<br />並且加結束標誌--%>
</item>
</ItemTemplate>
</asp:Repeater>
</channel>
</rss>

後臺代碼,從數據獲取數據綁定就可以了。

News news = new News();
DataSet ds = news.GetListByClass(5);
re.DataSource = ds;
re.DataBind();

第二種方式:直接後臺拼格式xml

前臺只需要保留第一行

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Rss.aspx.cs" Inherits="WebApplication1.Rss" %>

後臺:

namespace WebApplication1
{
public partial class Rss : System.Web.UI.Page
{
string xmlDoc = "rss.cml";
protected void Page_Load(object sender, EventArgs e)
{
ITemplate te= re.HeaderTemplate;

xmlDoc = Server.MapPath(".") + xmlDoc;
GetRss();
XmlDocument doc = new XmlDocument();
doc.Load(xmlDoc);
Response.ContentType = "text/xml";
doc.Save(Response.Output);

}
public void GetRss()
{
News news = new News();
DataSet ds = news.GetListByClass(5);//獲取數據
XmlTextWriter writer = new XmlTextWriter(xmlDoc, Encoding.UTF8);
writer.Formatting = Formatting.Indented;//設這縮進
writer.WriteStartDocument(true);//寫入xml聲明
writer.WriteComment("RSS的實現");
writer.WriteStartElement("rss");
writer.WriteAttributeString("version", "2.0");
writer.WriteStartElement("channel");
writer.WriteStartElement("title");
writer.WriteString("jiyong的Rss");
writer.WriteEndElement();
writer.WriteStartElement("link");
writer.WriteString("http://" + Request.ServerVariables["SERVER_NAME"]);
writer.WriteEndElement();
writer.WriteStartElement("description");
writer.WriteString("xxxx");
writer.WriteEndElement();
writer.WriteStartElement("copyringht");
writer.WriteString("2005");
writer.WriteEndElement();
writer.WriteStartElement("language");
writer.WriteString("zh-CN");
writer.WriteEndElement();
foreach (DataRow row in ds.Tables[0].Rows)//遍歷表中數據
{
//PId, PTypeId, PUserId, PTitle, PUrl, PDes, PClicks, PTime, PUp, PDown
string NewId = row["PId"].ToString();
string Heading = row["PTitle"].ToString();
string content = row["PDes"].ToString();
string IssuDate = row["PTime"].ToString();
string ClassId = row["PTypeId"].ToString();
writer.WriteStartElement("item");
writer.WriteStartElement("title");
writer.WriteString(Heading);
writer.WriteEndElement();//結束
writer.WriteStartElement("link");
writer.WriteString("http://" + Request.ServerVariables["SERVER_NAME"] + "/NewsShow?ID=" + NewId);
writer.WriteEndElement();//
writer.WriteStartElement("description");
writer.WriteString(content);
writer.WriteEndElement();//
writer.WriteStartElement("PubDate");
writer.WriteString(IssuDate);
writer.WriteEndElement();
writer.WriteStartElement("category");
writer.WriteString(ClassId);
writer.WriteEndElement();
writer.WriteEndElement();
}
writer.WriteEndElement(); writer.WriteEndElement();
writer.Flush();
writer.Close();
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章