Asp.net - exemple simple de génération de flux rss

Contenu du snippet

Dans le même principe que :
- http://www.aspfr.com/code.aspx?ID=25633

Nous prendrons le même exemple mais cette fois en ASP.NET (VB.NET). Nous enverrons la requette sur le serveur MySQL en direct sans avoir de DSN.

Source / Exemple :


' --------------------------------------------------------------------------
' Le fichier RSSNouvelles.ASPX :
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="RSSNouvelles.aspx.vb" Inherits="VotreProjet.RSSNouvelles"%>

' --------------------------------------------------------------------------
' Le fichier RSSNouvelles.ASPX.VB :

Public Class RSSNouvelles
    Inherits System.Web.UI.Page

#Region " Code généré par le Concepteur Web Form "

     ' --------------------------------------------------------------------------
   'Cet appel est requis par le Concepteur Web Form.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

    End Sub

    ' --------------------------------------------------------------------------
    'REMARQUE : la déclaration d'espace réservé suivante est requise par le Concepteur Web Form.
    'Ne pas supprimer ou déplacer.
    Private designerPlaceholderDeclaration As System.Object

    ' --------------------------------------------------------------------------
    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
        'CODEGEN : cet appel de méthode est requis par le Concepteur Web Form
        'Ne le modifiez pas en utilisant l'éditeur de code.
        InitializeComponent()
    End Sub

#End Region

    ' --------------------------------------------------------------------------
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim TableRubriqueMessage As New DataTable
        Dim mRow As DataRow
        Dim LaChaine As New System.Text.StringBuilder
        Dim LaDescription As String

        ' ------------------------------
        ' Chargement des Données
        Dim SQL as String = "SELECT * FROM NOUVELLES ORDER BY DATENEWS DESC;"
        Dim MonDatasetTemp As DataSet 
        MonDatasetTemp = MyODBCDataset(SQL, "VotreBase", "VotreServeurMySQL", &_
        "VotrePassWord", "VotreLogin", "MaTable")

        context.Response.AddHeader("content-type", "text/xml")

        LaChaine.Append("<?xml version=""1.0"" encoding=""UTF-8""?>")
         LaChaine.Append ("<rss version=""2.0""><channel>" & vbCrLf)
        LaChaine.Append("<title>Exemple de flux RSS en ASP.NET</title>" & vbCrLf)
        LaChaine.Append("<link>http://www.asp-php.net</link>" & vbCrLf)
        LaChaine.Append("<description>Les dernières nouvelles</description>" & vbCrLf)
        LaChaine.Append("<language>fr</language>" & vbCrLf)
        LaChaine.Append("<generator>ASP-PHP</generator>" & vbCrLf)
        LaChaine.Append("<copyright>ASP-PHP</copyright>" & vbCrLf)
        LaChaine.Append("<webMaster>ASP-PHP Webmaster</webMaster>" & vbCrLf)

        If MonDatasetTemp.Tables("MaTable").Rows.Count > 0 Then
            For Each mRow In MonDatasetTemp.Tables("MaTable").Rows
                LaChaine.Append("<item>" & vbCrLf)

                LaChaine.Append("<author>" & mRow("AUTEUR") & "</author>" & vbCrLf)
                LaChaine.Append("<title>" & mRow("AUTEUR") & " - Nouvelles Du Site</title>" & vbCrLf)
                LaChaine.Append("<link>http://VotreSiteWeb/VotrePagedeLecture.aspx?ValeurID=")
                LaChaine.Append (mRow("ID") &"</link>" & vbCrLf)
                LaChaine.Append("<pubDate>" & mRow("DATENEWS") & "</pubDate>" & vbCrLf)
                LaChaine.Append("<guid>http://VotreSiteWeb/VotrePagedeLecture.aspx?ValeurID=")
                LaChaine.Append (mRow("ID") &"</guid>" & vbCrLf)
                LaChaine.Append("<comments>http://VotreSiteWeb/VotrePagedeLecture.aspx?ValeurID=")
                LaChaine.Append (mRow("ID") &"</comments>" & vbCrLf)

                LaDescription = Replace(Trim(mRow("MESSAGE")), "<br>", "<BR/>")
                LaDescription = Replace(LaDescription, "<BR>", "<BR/>")
                LaDescription = Replace(LaDescription, "&", "&amp;")
                LaDescription = Replace(LaDescription, "<", "<")
                LaDescription = Replace(LaDescription, ">", ">")

                LaChaine.Append("<description>" & LaDescription & "</description>" & vbCrLf)

                LaChaine.Append("</item>" & vbCrLf)
            Next
        End If
        LaChaine.Append("</channel></rss>" & vbCrLf)
        HttpContext.Current.Response.Write(LaChaine.ToString)
    End Sub

    ' --------------------------------------------------------------------------
    Public Shared Function MyODBCDataset(ByVal ReqSQL As String, ByVal LaBase As String, &_
    ByVal Server As String, ByVal Password As String, &_
    ByVal User As String, ByVal NomDataSet As String) As DataSet
    ' Connexion à un server MySQL avec le Driver ODBC 3.51 avec requette qui renvoie un dataset
        Dim MyConString As String = "DRIVER={MySQL ODBC 3.51 Driver};SERVER=" 
        MyConString & = Server & ";DATABASE=" & LaBase & ";UID=" & User & ";PASSWORD=" 
        MyConString &= Password & ";OPTION=3;"
        Dim MyODBCConnexion As New OdbcConnection(MyConString)
        Try
            Dim ds As New DataSet()
            Dim cmd As OdbcDataAdapter = New OdbcDataAdapter(ReqSQL, MyConString)
            Dim MyCommand As New OdbcCommand()
            Dim MyDataReader As OdbcDataReader

            cmd.Fill(ds, NomDataSet)
            MyODBCConnexion.Close()
            Return ds
        Catch MyOdbcException As OdbcException
            ' HttpContext.Current.Response.Write(MyOdbcException.ToString)
        Catch MyException As Exception
            ' HttpContext.Current.Response.Write(MyException.ToString)
        End Try
    End Function

    ' -----------------------------------------------------
End Class

Conclusion :


Bon coding

Romelard Fabrice (Alias F___)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.