Overblog Suivre ce blog
Editer l'article Administration Créer mon blog
22 septembre 2008 1 22 /09 /septembre /2008 17:16

Rien de plus facile avec le nouveau framework grâce à la classe Rss20FeedFormatter.

Tout d'abord il faut importer les espaces de noms nécessaires.

Code :

Imports System.ServiceModel.Syndication
Imports System.Xml

 

Voici une fonction qui permet de lire un flux RSS existant ou d'en renvoyer un nouveau si celui-ci n'existe pas.

Code :

Private Function GetRss() As SyndicationFeed
        Dim fileExist As Boolean
        Dim filePath As String = Server.MapPath("~/public/rss/rss.xml")
        fileExist = My.Computer.FileSystem.FileExists(filePath)

        If fileExist Then
            Dim feed As SyndicationFeed

            Dim rssReader As XmlReader = XmlReader.Create(filePath)
            feed = SyndicationFeed.Load(rssReader)
            rssReader.Close()
            Return feed
        End If

        Return New SyndicationFeed
    End Function

 

 

Pour ajouter un nouvel Item dans le flux nous allons utiliser la fonction GetRss pour lire ceux déjà existant.

Code :

Private Sub WriteRss(ByVal title As String, ByVal content As String, ByVal itemAlternateLink As String, ByVal id As String, ByVal itemDate As DateTimeOffset)
        Dim filePath As String = Server.MapPath("~/public/rss/rss.xml")
        Dim feed As SyndicationFeed = GetRss()
        Dim item As SyndicationItem = New SyndicationItem(title, content, New Uri(itemAlternateLink), id, DateTime.Now)

        Dim items As List(Of SyndicationItem) = New List(Of SyndicationItem)(feed.Items)
        items.Add(item)
        feed.Items = items

        Dim rssWriter As XmlWriter = XmlWriter.Create(filePath)
        Dim rssFormatter As Rss20FeedFormatter = New Rss20FeedFormatter(feed)
        rssFormatter.WriteTo(rssWriter)
        rssWriter.Close()
    End Sub

L'utilisation de XmlWriter et XmlReader facilite grandement la tâche et Rss20FeedFormatter permet de ne plus se soucier du schema du fichier Xml.

Biensur, si vous essayez de lire un fichier Xml qui n'a pas un schema RSS 2.0 vous allez avoir une erreur. Il sera donc de bon goût de rajouter quelques Try Catch si vous n'êtes pas sur du schema des fichiers Xml que vous allez lire.

Partager cet article

Repost 0
Published by Cyril - dans VB.NET
commenter cet article

commentaires