XLDev.de

Next Level Development

mcts on sql server 2005 mcp on sql server 2000 1und1
Hier stelle ich meine "kleine" Sammlung von ASP.net Projekten zur Verfügung.
Der Code bassiert i.d.R. auf dem .NET Framework 3.5.
Weitere Vorschläge und/oder Anregungen nehme ich gerne entgegen.

RSS Feed per RssFeed.ashx anbieten

11.04.2010 posted by Frank Wenner

Hier wird der grundlegende Aufbau von XML Daten für einen RSS Feed aufgezeigt
<%@ WebHandler Language="C#" Class="RssFeed" %>;

using System;
using System.Web;
using System.Collections.Generic;
using System.Xml;
using System.Text;

public class RssFeed : IHttpHandler
{
  public void ProcessRequest (HttpContext context)
  {
    // Clear any previous output from the buffer
    context.Response.Clear();
    context.Response.ContentType = "text/xml";
    XmlTextWriter cdRSS = new XmlTextWriter(context.Response.OutputStream, Encoding.UTF8);

    cdRSS.WriteStartDocument();
  
    cdRSS.WriteRaw("<?xml-stylesheet type=\"text/xsl\" href=\"RssFeed.xslt\"?>");
  
    cdRSS.WriteStartElement("rss");
    cdRSS.WriteAttributeString("version", "2.0");
    cdRSS.WriteStartElement("channel");
    cdRSS.WriteElementString("title", "was auch immer");
    cdRSS.WriteElementString("link", "http://www.was-auch-immer.xyz");
    cdRSS.WriteElementString("webMaster", "Info@was-auch-immer.xyz");
    cdRSS.WriteElementString("ttl", "60");
    cdRSS.WriteElementString("pubDate", DateTime.Now.ToString("R"));
    cdRSS.WriteElementString("description", "aktuelle Informationen vom ...");
    cdRSS.WriteElementString("copyright", "Copyright "was auch immer", alle Rechte vorbehalten.");
    
    cdRSS.WriteStartElement("item");
    cdRSS.WriteElementString("title", Item.Title);
    cdRSS.WriteElementString("description", Item.Text);
    cdRSS.WriteElementString("author", "Info@was-auch-immer.xyz");
    cdRSS.WriteElementString("guid", Item.Date.ToString("yyyy-MM-dd-hh-mm-ss-fff") + "-" + Item.Title);
    cdRSS.WriteElementString("link", "http://" 
    + context.Request.Url.Host + ":" + context.Request.Url.Port + "/Sites/News.aspx");
    cdRSS.WriteElementString("pubDate", DateTime.Now.ToString("R"));
    cdRSS.WriteEndElement();
    cdRSS.WriteEndElement();
    cdRSS.WriteEndElement();
  
    cdRSS.WriteEndDocument();
    cdRSS.Flush();
    cdRSS.Close();
    context.Response.End(); 
  }  
  
  public bool IsReusable
  {
    get 
    {
      return false;
    }
  }
}