HowTo: RSS Feeds mit LINQ to XML erstellen (XLinq)
Ein XML zu erstellen ist mit Linq to XML recht einfach – ähnliches habe ich bereits in diesem HowTo beschrieben.
Der Unterschied ist eigentlich nur in der Verwendung und in dem dynamischen anlegen der Items zu finden.
Hier erstmal der Projektaufbau:
Damit unsere Besucher auch auf den RSS Feed aufmerksam werden, hab ich noch im HEAD einen Link auf den RSS-Feed gemacht:
<head runat="server">
<title>Untitled Page</title>
<link rel="alternate" href="Rss.ashx" type="application/rss+xml" title="" id="rss" />
</head>
Die “Rss.ashx”:
Das Grundgerüst erzeugen wir direkt in der ProcessRequest Methode:
public void ProcessRequest(HttpContext context)
{
XDocument document = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement("rss",
new XAttribute("version", "2.0"),
new XElement("channel", this.CreateElements())
));
context.Response.ContentType = "text/xml";
document.Save(context.Response.Output);
context.Response.End();
}
Hier wird die Deklaration gemacht und das XDocument wird in den Response.Output geschrieben. Unsere Items erzeugen wir an einer anderen Stelle – und zwar in der “CreateElements” Methode.
Die “CreateElements“-Methode:
Diese Methode gibt IEnumberable<XElement> zurück und kann somit direkt in den Baum eingefügt werden:
private IEnumerable<XElement> CreateElements()
{
List<XElement> list = new List<XElement>();
for (int i = 1; i < 100; i++)
{
XElement itemElement = new XElement("item",
new XElement("title", i),
new XElement("link", "http://code-inside.de")
);
list.Add(itemElement);
}
return list;
}
Sehr einfach und schnell gemacht




Albert Weinert
20. June 2008
An der Stelle möchte ich nur kurz auf den wohl nicht so bekannten Namespace System.Syndication hinweisen.
RSS & ATOM lesen und erzeugen supereinfach.
Robert Mühsig
20. June 2008
Klingt interessant – allerdings find ich kein Link in der MSDN zu dem Thema (und auch sonst gibt mir das gute Google nix hilfreiches aus) – hast du da ein paar URLs?
Albert Weinert
21. June 2008
Also, mit dem richtigen Namespace System.ServiceModel.Syndication würde man was finden
msdn2.microsoft.com/System.ServiceModel.Syndication
Zentrix
26. April 2011
Hallo, ich würde gerne mal Wißen wie man den jetzt die Daten aus der LINQ Datenquelle in den XML Stream bekommt. Und ich würde eine Version gerne in VB.NET haben!
Zentrix
26. April 2011
Ist es möglich eine Kopie dieses Codes in Visual Baisx (VB.NET) zu erhalten??