Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Feed RSS in ASP

Creare un feed RSS e visualizzarne il contenuto in una pagina web
Creare un feed RSS e visualizzarne il contenuto in una pagina web
Link copiato negli appunti

Realizzare un Feed RSS con le ultime news del nostro sito è  sicuramente
tanto interessante quanto semplice. Se avete quindi già un Data Base dove memorizzate le notizie diventa immediato creare uno script ASP che crea un documento RSS (o RDF). L' RSS non è altro che un documento XML che si basa su determinati TAG utilizzati per convenzione. La classica struttura semplificata per un feed RSS è la seguente:

<?xml version="1.0" encoding="UTF-8"?>
<rss version="0.91">
  <channel>
    <title>Titolo del vostro RSS </title>
      <description>Descrizione del vostro RSS</description>
    <link>URL del vostro RSS</link>
    <item>
      <title><![CDATA[ Titolo notizia 1 ]]></title>
      <description><![CDATA[ Descrizione o Corpo notizia 1]]></description>
      <link><![CDATA[ URL per leggere la notizia 1 sul web]]></link>
    </item>

    <item>
      <title><![CDATA[ Titolo N ]]></title>
      <description><![CDATA[ Descrizione o Corpo notizia N]]></description>
      <link><![CDATA[ URL per leggere la notizia N sul web]]></link>
    </item>
  </channel>
</rss>

Se avete già un po' di confidenza con l'XML dovrebbe risultarvi semplice capire di cosa si tratta. Notate l'utilizzo dei blocchi CDATA all'interno di alcuni elementi dell'albero. Questo perché in alcuni casi potrebbero presentarsi dei caratteri speciali che potrebbero mandare in errore il parser del Browser. Soprattutto all'interno degli elementi <link> delle notizie è facile avere URL di questo tipo:

http://www.sito.com/legginews.asp?idnews=2&lingua=italiano

In questi casi ad esempio il carattere & (e-commerciale) manda in errore il parser XML invalidando il nostro documento RSS. È sempre bene quindi accertarsi che all'interno dei vari elementi non ci sia la possibilità di incontrare caratteri speciali o utilizzare i blocchi CDATA per prevenire errori di questo tipo.

Passiamo alla realizzazione del feed RSS, utilizzando un semoplice file ms Access e codice ASP/VBScript

Struttura del Data Base Access

campi idnews, titolo e descrizione

Codice ASP che crea il documento XML RSS

<%

'Stringa di connessione al nostro Data Base di news
'da modificare in base al percorso del vostro Data Base
StrConnessione = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & _
      server.MapPath("/rss/ASP") & "News.mdb"

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open StrConnessione

'Istruzione SQL che prende le news dal Data Base;
'da cambiare con il nome della vostra tabella ed i nomi dei campi
SQL = "SELECT * FROM news Order by idnews desc"

Set rs = Server.CreateObject("ADODB.RecordSet")
rs.CursorLocation = 3
rs.Open SQL, Conn, 1,1

' Numero totale di records
totfiles = rs.recordcount

xml = "<?xml version=""1.0"" encoding=""UTF-8""?>" & _
      "<rss version=""0.91""><channel><title>Le Ultime Notizie</title>" & _
      "<description>Notizie dal mondo in tempo reale</description>" & _
      "<link>http://www.tgcom.it</link><language>it</language>"

'Se il Record Set non è vuoto
if totfiles <> 0 then
  Do while not rs.eof
    xml = xml & "<item>"
    xml = xml & "<title><![CDATA[" & rs("titolo") & "]]></title>"
    xml = xml & "<description><![CDATA[" & rs("descrizione") & "]]></description>"
    xml = xml & "<link><![CDATA[http://www.tuosito.com/legginews.asp?id=" & rs("idnews") & "]]></link></item>"
  
    rs.movenext
  Loop
End if

xml = xml & "</channel></rss>"

' Impostazione che setta il tipo di file in output su XML
response.ContentType = "text/xml"
response.write xml

'Libero Risorse
rs.close
set rs=nothing
Conn.Close
set Conn=nothing
%>

Visualizzare un documento RSS (o RDF)

Vediamo ora come realizzare uno script ASP capace di leggere e visualizzare in HTML un documento RSS (o RDF) remoto, sfruttando l'oggetto DOM per l'XML. Per visualizzare l'esempio andate a questo URL http://www.enricolai.com/rss/asp/RSSview.asp mentre se volete una lista di indirizzi web RSS potete trovarla qui: http://www.blago.net/.

Script ASP che rielabora un documento XML RSS e RDF

<%


'Rielaboraun documento XML RSS e RDF
'e fornisce in output un documento HTML

url=request("url")

' Creo oggetto DOM XML

Set objXML = Server.CreateObject("msxml2.DOMDocument.3.0")
objXML.async = false
objXML.setProperty "ServerHTTPRequest", True

' validazione del documento XML

objXML.validateOnParse = false 'true

' non conservare spazi

objXML.preserveWhiteSpace = false
blnLoaded = objXML.Load(url)

If Not blnLoaded Then
  Response.write "Nessuna news da visualizzare"
Else
  set objNodeList = objXML.getElementsByTagName("channel")
  
  For Each objNode In objNodeList
    For Each objNode2 In objNode.childNodes
  
      Select Case objNode2.nodeName
        Case "title"
          html = html + "<tr><td><strong>
          html = html + objNode2.firstChild.nodevalue
          html = html + "</strong></td></tr>"
        Case "link"
          html = html + "<tr><td><a target=_blank href="objNode2.firstChild.nodevalue + ">"
          html = html + objNode2.firstChild.nodevalue
          html = html + "</a></td></tr>"
        Case "description"
          html = html + "<tr><td><em>"
          html = html + objNode2.firstChild.nodevalue
          html = html + "</em></td></tr>"
        End Select
    Next
  Next

  html = html + "<tr><td><hr></td></tr>"

  Set objNodeList = objXML.getElementsByTagName("item")
  For Each objNode In objNodeList
    For Each objNode2 In objNode.childNodes
      
      Select Case objNode2.nodeName
        Case "title"
          strTitle = objNode2.firstChild.nodevalue
        Case "link"
          strURL = objNode2.firstChild.nodevalue
        Case "description"
          strDescription = objNode2.firstChild.nodevalue
      End Select
    Next
    
    html = html + "<tr><td><li/><strong><a target=_blank href=" + strURL + ">"
    html = html + strTitle + "</a></strong><br />" + strDescription +"</td></tr>"
    strTitle = ""
    strURL = ""
    strDescription = ""
  Next

  html = "<table width=400>"+html+"</table>"
  set objNodeList = Nothing

End if
%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
</head>
<body>

<% Response.write (html) %>

<!-- Form per l'inserimento dell'URL RSS remoto -->

<table border="0" width="400" cellspacing="0" cellpadding="0">
<form action="RSSview.asp" method="POST">

<tr><td width="100%"><hr></td></tr>
<tr><td width="100%">Inserire l'URL di un feed RSS o RDF</td></tr>
<tr><td width="100%"><input type="text" size="60" name="url" /></td></tr>
<tr><td width="100%"><input type="submit" value="Visualizza" /></td></tr>

</form>
</table>
</body>
</html>

Ti consigliamo anche