• User Attivo

    creazione di rss

    salve
    ho creato sulla base di un articolo letto uno script che legge alcuni record di un db li estrare e crea una pagine rss (anche se ha l'estensione asp)

    essendone più di due i db su cui effettuare la ricerca, ho riprodotto il codice per ogni db o tabella
    mi da l'errore di non chiusura dei tag <rss> e <channel>
    probabilmente per via del ciclo "end if" ecc nella situazione in cui in un db non ho notizie dell'ultima settimana

    credo quindi che l'errore sia nel secondo blocco di codice

          <%
    '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("../db/") & "\db1.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 tabella WHERE data >= (date()-7) Order by id 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=""ISO-8859-1"" ?>" & _
          "<rss version=""0.91""><channel><title>Novità </title>" & _
          "<description>notizie</description>" & _
          "<link>http://www.miosito.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("specifica") & "]]></title>"
        xml = xml & "<description><![CDATA[" & rs("titolo") & "]]></description>"
        xml = xml & "<date><![CDATA[" & rs("data") & "]]></date>"
        xml = xml & "<link><![CDATA[" & "http://www.miosito/pagina.asp?id=" &rs("id") & "]]></link>" 
      xml = xml & "</item>"
     
        rs.movenext
      Loop
    End if
     
    ' 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
    %> 
     
     
     
     
    <%
    '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("../db/") & "\db2.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 tabella2 WHERE data >= (date()-7) Order by id desc "
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.CursorLocation = 3
    rs.Open SQL, Conn, 1,1
     
    ' Numero totale di records
    totfiles = rs.recordcount
     
    '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("titolo") & "]]></description>"
        xml = xml & "<date><![CDATA[" & rs("data") & "]]></date>"
        xml = xml & "<link><![CDATA[" & "http://www.miosito.it/secondapagina.asp?news=" &rs("news") & "]]></link>" 
      xml = xml & "</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
    %> 
     
     
     
    <%
    '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("../db/") & "\db3.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 tabella3 WHERE data >= (date()-7) Order by id desc "
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.CursorLocation = 3
    rs.Open SQL, Conn, 1,1
     
    ' Numero totale di records
    totfiles = rs.recordcount
     
    'Se il Record Set non è vuoto 
    if totfiles <> 0 then
      Do while not rs.eof
        xml = xml & "<item>"
        xml = xml & "<title><![CDATA[" & rs("specifica") & "]]></title>"
        xml = xml & "<description><![CDATA[" & rs("titolo") & "]]></description>"
        xml = xml & "<date><![CDATA[" & rs("data") & "]]></date>"
        xml = xml & "<link><![CDATA[" & "http://www.miosito.it/terzapagina.asp?id=" &rs("id") & "]]></link>" 
      xml = xml & "</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
    %> 
     
    

    come posso modificare?

    grazie anticipate


  • Moderatore

    Così non dovrebbe darti l'errore:

    
    '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("../db/") & "\db1.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 tabella WHERE data >= (date()-7) Order by id 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=""ISO-8859-1"" ?>" & _
          "<rss version=""0.91""><channel><title>Novità </title>" & _
          "<description>notizie</description>" & _
          "<link>http://www.miosito.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("specifica") & "]]></title>"
        xml = xml & "<description><![CDATA[" & rs("titolo") & "]]></description>"
        xml = xml & "<date><![CDATA[" & rs("data") & "]]></date>"
        xml = xml & "<link><![CDATA[" & "http://www.miosito/pagina.asp?id=" &rs("id") & "]]></link>" 
      xml = xml & "</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
    %> 
     
     
     
     
    <%
    '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("../db/") & "\db2.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 tabella2 WHERE data >= (date()-7) Order by id desc "
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.CursorLocation = 3
    rs.Open SQL, Conn, 1,1
     
    ' Numero totale di records
    totfiles = rs.recordcount
     
    '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("titolo") & "]]></description>"
        xml = xml & "<date><![CDATA[" & rs("data") & "]]></date>"
        xml = xml & "<link><![CDATA[" & "http://www.miosito.it/secondapagina.asp?news=" &rs("news") & "]]></link>" 
      xml = xml & "</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
    %> 
     
     
     
    <%
    '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("../db/") & "\db3.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 tabella3 WHERE data >= (date()-7) Order by id desc "
    Set rs = Server.CreateObject("ADODB.RecordSet")
    rs.CursorLocation = 3
    rs.Open SQL, Conn, 1,1
     
    ' Numero totale di records
    totfiles = rs.recordcount
     
    'Se il Record Set non è vuoto 
    if totfiles <> 0 then
      Do while not rs.eof
        xml = xml & "<item>"
        xml = xml & "<title><![CDATA[" & rs("specifica") & "]]></title>"
        xml = xml & "<description><![CDATA[" & rs("titolo") & "]]></description>"
        xml = xml & "<date><![CDATA[" & rs("data") & "]]></date>"
        xml = xml & "<link><![CDATA[" & "http://www.miosito.it/terzapagina.asp?id=" &rs("id") & "]]></link>" 
      xml = xml & "</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
    %> 
    
    

    Ciao
    :ciauz::ciauz:


  • User Attivo

    grazie

    provo

    ultima cosa...
    non sarebbe meglio creare un solo <% %> ?
    le estrazioni ripetute tutte all'interno

    grazie


  • Moderatore

    Si, se vuoi puoi usare un solo <%%>

    Ho modificato il codice sopra quello di prima non era corretto

    Ciao


  • User

    @flasini said:

    salve
    ho creato sulla base di un articolo letto uno script che legge alcuni record di un db li estrare e crea una pagine rss (anche se ha l'estensione asp)

    Ciao, senti per caso l'articolo l'hai letto on-line? Potresti darmi il link in caso affermativo?


  • User Attivo

    non so se posso postarlo

    si riferisce ad un sito concorrente forse

    che dice il mod?


  • Moderatore

    Postalo pure, sicuramente potrà aiutare altri utenti in futuro

    :ciauz:


  • User Attivo

  • User

    Grazie mille!