Accueil   |   Forums   |  Offres d'emplois   |  Contact    |   Mon compte   
vendredi 30 juillet 2010 Rechercher :
Déposez votre CV gratuitement sur touslesemplois
 
comparer les prix
» Logiciels
» Jeux vidéos
» Matériel Informatique


» ASP.NET
» ASP
» SQL
» PHP
» JAVASCRIPT
» XML
 


» ACTUALITÉ / DIVERS
» DROIT DE L'INTERNET
» INFOS VIRUS
» PATCHS MICROSOFT
» SÉCURITÉ
» BASES DE DONNÉES
» DOWNLOAD .NET
» LOGITHÈQUE
» SERVICES WEB
» Y SONT FOUS !
» .NET
» ASP
» ASP.NET
» JAVA
» PHP
» XML
» LANGAGE C#
» LANGAGE VB.NET
» UNIX / LINUX
» WINDOWS
» EVÈNEMENTS
» GASP
» MICROSOFT
 



Vous êtes ici : Articles ASP.NET > NOTES DE COURS

Créer un Feed RSS avec XmlTextWriter
Cet article vous explique comment générer à partir d'une table d'une base de données un fichier XML et plus particulièrement un fichier RSS, afin d'exposer par exemple l'actualité de votre site sous ce format. L'objet XmlTextWriter est particulièrement bien adapté dans cette situation.


ABONNEZ-VOUS GRATUITEMENT A LA REVUE DE PRESSE "LES Z'ACTUS" ET RECEVEZ CHAQUE JOUR DANS VOTRE BOITE AUX LETTRES LA MEILLEURE INFORMATION DEDIEE AUX WEBMASTERS / DEVELOPPEURS.

Indiquez votre adresse E-mail :

Technologie : ASP.NET 2.0 
Date : 02/06/2006   
Auteur : ASP MAGAZINE

Ce script est à insérer dans la procédure page_load de votre document.

Nous utilisons une base de données Sql server 2000, et du XML. Nous aurons donc besoin d'importer en entête du document les espaces de noms suivants :

Imports System.Data.SqlClient
Imports System.Xml

L'objet XmlTextWriter utilisé dans ce script, permet de générer des élements XML à la volée : un fichier RSS étant un XML particulier, celui-ci est particulièrement adapté à la situation.

Première chose créer l'entête du fichier RSS - L'objet XmlTextWriter n'est ici pas intialisé sur un fichier mais directement sur la réponse - page qui sera renvoyée par ASP.NET - Response.OutputStream.

Début du script :

        Dim rss As New XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8)
        rss.WriteStartDocument()
        rss.WriteStartElement("rss")
        rss.WriteAttributeString("version", "2.0")
        rss.WriteStartElement("channel")

Ce qui donnera :

 <?xml version="1.0" encoding="utf-8" ?> 
   <rss version="2.0">
  
<channel>

        
Les données utilisées sont ensuite renvoyées par l'intermédiaire d'une procédure stockée zactus_rss.
Nous utilisons un objet DataSqlReader pour les lire - Conn représentant la connexion ouverte sur notre base de données :

        Dim dr As SqlDataReader
        Dim oCom As SqlCommand
        oCom = New SqlCommand("zactus_rss", conn)
        oCom.CommandType = Data.CommandType.StoredProcedure
        dr = oCom.ExecuteReader()

Le premier élément ajouté au feed, concerne l'entete du fichier RSS. Il est intégré à la boucle de lecture des données afin de récupérer quelques infos de notre table - ici le numéro de lettre ainsi que la date de la lettre (vous l'aurez remarqué, il s'agit du Feed RSS de notre lettre journalière les Z'actus)

        Dim i As Integer = 0
        While dr.Read()
            If i = 0 Then
                '--------- Premier élément intégré sous la section <channel>
                rss.WriteElementString("title", "Les Z'actus - La revue de presse")
                rss.WriteElementString("link", "http://www.asp-magazine.com")
                rss.WriteElementString("description", "Revue de presse journalière numéro " & dr("numlettre") & " du " & FormatDateTime(dr("date_info"), 2) & " d'ASP MAGAZINE - Informations destinées aux développeurs / Webmasters")
                rss.WriteElementString("copyright", "Copyright 1999 - 2006 Asp-magazine.com.")

            End If

            '----- Ajout des Item au fichier RSS
            rss.WriteStartElement("item")
            rss.WriteElementString("title", dr("titre_info"))
            rss.WriteElementString("description", dr("desc_info"))
            rss.WriteElementString("category", dr("new_cat"))
            rss.WriteElementString("link", "http://www.asp-magazine.com/zactus/z/p" & dr("id_info") & ".html")
            rss.WriteElementString("pubDate", Format(dr("date_info"), "r"))
            rss.WriteEndElement()
            i += 1
        End While

        dr.Close()
        conn.Close()

Nous fermons ensuite les tag respectivement </channel> et </rss>, puis nous marquons la fin du document.

        rss.WriteEndElement()
        rss.WriteEndElement()
        rss.WriteEndDocument()

Le fichier rss est exposé puis fermé.

        rss.Flush()
        rss.Close()

Il suffit enfin de modifier l'entête de la page renvoyée vers le navigateur du client, afin que celui-ci comprenne qu'il s'agit d'un fichier XML :

        Response.ContentEncoding = System.Text.Encoding.UTF8
        Response.ContentType = "text/xml"
        Response.End()

 Finalement ce qui donne le Feed suivant : cliquez ici

 



ASP Serveur - L'hébergement ASP.NET


A RETENIR CETTE SEMAINE
29/07/2010 - Première Preview d'ASP.Net MVC3
Microsoft vient d'annoncer, via le vice-président de sa division de développement Scott Guthrie, la ...
29/07/2010 - Challenge Windows Phone 7 - La quatrième épreuve est disponible !
Nos amis du site Developpez.com ont mis en ligne la 4ème étape du Challenge Windows Phone 7. Il n'es ...
29/07/2010 - Difficile de faire plus facile !
Avec la plateforme web Microsoft, vos projets gagnent à tous les coups. 5 000 serveurs gratuits tout ...
29/07/2010 - J'en ai rien à coder 2010 - Le chapitre Visual Studio 2010 est en ligne !
Cet été formez-vous grâce au quatrième chapitre Visual Studio 2010 de la saga de l'été MSDN "J'en ai ...
26/07/2010 - Promotion SPECIALE Expression Web 3 !
Du 1er Juillet 2010 au 30 Septembre 2010, profitez d’une remise exceptionnelle auprès de notre reven ...
26/07/2010 - Testez vos connaissances avec le quiz .NET Framework
Le mini-quiz autour de la plateforme .NET Framework est enfin disponible ! Testez vite vos connaissa ...
26/07/2010 - Tentez de gagner Kinect en participant au premier jeu-concours de l'été !
L’été vient tout juste de commencer, et il s’annonce déjà riche comme jamais en cadeaux ! Participez ...
(c) 1999-2006 ASP MAGAZINE SARL
Partenaires : Codes sources c2i ASP-PHP
Hébergement serveurs dédiés Windows


Hit-Parade