Magazine Internet

Ecrire un flux RSS avec XLinq et DLinq

Publié le 02 septembre 2008 par Jeremy.jeanson

Voici une méthode permetant d'écrire un flux RSS à partir de Linq to XML et Linq to SQL. Les données proviennent d'une source Linq to SQL dont voici le schéma :

exemple_linq

Et Voici le code C# :

/// <summary>
/// Description résumée de Rss
/// </summary>
public class Feeds
{
/// <summary>
/// Ecriture du flux RSS
/// </summary>
public static void Write()
{
String path = HttpContext.Current.Server.MapPath("...path.../blog.rss"); // Avec path : chemin du flux
String url = String.Concat("...path.../fichier.aspx?id="); // Avec path et fichier pour désigner le fichier qui permetra d'avoir un lien vers la page du post
XDocument document = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement("rss",
new XElement("channel",
new XElement("title", "Nom du site"),
new XElement("link", "Url du site"),
new XElement("pubDate", Date2RFC822(DateTime.Now)),
new XElement("lastBuildDate", Date2RFC822(DateTime.Now)),
from p in new DataContext().Post.OrderByDescending(c => c.date_edition).Take(10)
select new XElement("item",
new XElement("guid", p.id_post.ToString()),
new XElement("pubDate", Date2RFC822(p.date_edition)),
new XElement("title", p.titre),
new XElement("description", p.texte),
new XElement("link", String.Concat(url, p.id_post.ToString()))
)
)
,
new XAttribute("version", "2.0"))
);
//Stream d'écriture du fichier
System.IO.TextWriter writer = new System.IO.StreamWriter(path, false, Encoding.Default);
document.Save(writer);
writer.Flush();
writer.Close();
}
/// <summary>
/// Formatage de date
/// </summary>
/// <param name="date"></param>
/// <returns></returns>
private static String Date2RFC822(DateTime date)
{
Int32 offset = TimeZone.CurrentTimeZone.GetUtcOffset(DateTime.Now).Hours;
StringBuilder sb = new StringBuilder();
sb.Append(date.ToString("ddd, dd MMM yyyy HH:mm:ss "));
if (offset < 0)
{
sb.AppendFormat("-{0:00}00", offset * -1);
}
else if (offset == 0)
{
sb.Append("GMT");
}
else
{
sb.AppendFormat("+{0:00}00", offset);
}
return sb.ToString();
}
}

Vous pourriez être intéressé par :

Retour à La Une de Logo Paperblog

Ces articles peuvent vous intéresser :

  • Le RSS expliqué aux enfants

    MilanPresse a mis en ligne une vidéo expliquant le RSS aux enfants. Mais pas que aux enfants. Lire la suite

    Par  Yeca
    CÔTÉ FEMMES, EDUCATION, ENFANTS, INTERNET, RSS
  • Parlez-vous RSS ?

    Parlez-vous

    RSS : De quoi s’agit-il ? « Really Simple Syndication » ou RSS est un format de description de données très en vogue en ce moment sur le Web. Utilisé pour... Lire la suite

    Par  Alsasys
    INTERNET, RSS
  • Alerte Google en RSS

    Alerte Google

    Google proposait déjà des alertes au format RSS pour les recherches sur l'actualité et les blogs ; Depuis peu le moteur permet de s'abonner à des flux RSS pour... Lire la suite

    Par  Francois Jeanne-Beylot
    INTERNET, RSS
  • Tous les RSS en .gouv.fr

    Le moteur de recherche Auracom propose un service gratuit très intéressant sur l'actualité des sites gouvernementaux français. 6 fois par jour le moteur scanne... Lire la suite

    Par  Francois Jeanne-Beylot
    INTERNET, RSS
  • Yahoo! Pipes : RSS Widget

    Voici un tutorial tout simple pour afficher un flux RSS quelconque sur un blog ou un site, en utilisant le service gratuit de Yahoo! : Pipes. Lire la suite

    Par  Nico²
    INTERNET, A CLASSER
  • Comprendre les flux RSS…

    Les internautes avertis n’auront pas besoin de lire ce post, mais les novices y trouveront certainement leur compte. Cette question n’est pourtant pas récente,... Lire la suite

    Par  Jérémie Cayla
    INTERNET
  • FeedSweep : Widget Rss à configurer

    Ajouter n’importe quel flux rss simplement à votre site/blog. FeedSweep est un outil permettant de créer très facilement un widget d’affichage de flux rss. Lire la suite

    Par  Jerome S.
    INTERNET

A propos de l’auteur


Jeremy.jeanson 1573 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte

Magazine