Les Snippets

Connexion

Ecrire un flux RSS avec XLinq et DLinq

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 23/09/2008 13:59:57 et initié par jmenfous [Liste]
Vue : 5904
Catégorie(s) : Base de données, Web
Langages dispo pour ce code :
- ASP.NET 2.x, C# 3.x



Langage : ASP.NET 2.x , C# 3.x
Date ajout : 23/09/2008
Posté par jmenfous [Liste]

/// <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();

    }

}

Remarque :
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 :
http://jeremy.blogdns.net/Data/Posts/exemple_linq_3.png

Snippets en rapport avec : Dlinq, Xlinq, Linq



Codes sources en rapport avec : Dlinq, Xlinq, Linq

{C# / C#.NET} ENTITY FRAMEWORK - AVOIR UN INCLUDE TYPÉ
Entity Framework propose une méhtode Include permettant d'inclure des objets connexes lors du charge...

{ASP / ASP.NET} GRIDVIEW WITH TREEVIEW AND CALLBACK
Voici un gridview qui contient un tree view pour plier et deplier les lignes il faut que dans la ...

{C# / C#.NET} [.NET3.5] SYSTEM.IO.PIPES - UTILISATION D'UN CANAL NOMMÉ
L'espace de nom System.IO.Pipes est apparu avec .net3.5. Il contient des classes fournissant un moye...

{C# / C#.NET} HOOK CLAVIER EN C#
Ce programme montre (de facon simple) comment réaliser un systême de Hook clavier de manière complèt...

{C# / C#.NET} ARBRE (TREE) - STRUCTURES D'ARBRES GÉNÉRIQUES
J'ai été surpris de voir qu'il n'y avait aucune structure général d'arbre dans System.Collections. J...

{C# / C#.NET} LINQ TO XML & LA MANIPULATION DE DONNÉES EN XML AVEC UNE APPLICATION WINFORM
Afin de manipuler des données à l'aide d'XML et de supprimer et ajouter dans votre fichier XML à vot...

{Visual Basic, VB6, VB.NET, VB 2005} SILVERLIGHT : DATAGRID LINQ TO XML VWD 2008
J'ai galéré pour la syntaxe Linq To Xml ... Nécessite Visual Web Developper 2008 Express Edition S...

{C# / C#.NET} REDIMENSIONNEMENT DE DOCUMENTS SCANNÉS POUR MAILS
L'objectif de ce projet était de fournir une application très simple pour ma famille afin qu'ils pui...

{ASP / ASP.NET} GRIDVIEW UTILISANT LINQ ET REFLECTION
Une version modifiée du GridView de base permettant d'utiliser toute source de données énumerables e...

{ASP / ASP.NET} OPTIMISATION DE LA SERIALISATION JSON POUR LES LIST
Cette source permet d'optimiser la sérialisation JSON d'une List. Par défaut si un WebService retour...