Avatar billede mettecarsten Nybegynder
16. februar 2009 - 20:45 Der er 1 kommentar og
1 løsning

Gemme RSS Feed i mysql-database

Hej eksperter

Jeg vil rigtig gerne kunne gemme RSS feeds i min database (mysql), men er lidt på herrens mark i forhold til kodningen. Jeg håber derfor, at du har en stump kode, eller ved hvor det kan findes, som "automatisk" kan geme nyheder fra et RSS feed. Formoder, at der på serveren skal ligge en fil, som "automatisk" opdaterer sig selv.

Koderne skal være i asp.

Virkelig på forhånd tak.
Avatar billede mettecarsten Nybegynder
19. februar 2009 - 11:26 #1
Har selv fundet løsningen, ved hjælp fra html.dk, http://www.html.dk/scripts/asp/00020/ og muligheden for bestilling af et "cronjob" hos Unoeuro. Koden kommer her, hvis andre kunne få gavn af det:

<%
' Forbindelsesfil til database
%>
<!-- #include virtual="/xxxxxxxx.asp"-->

<%

' ****************************************************************
' Dette script kan benyttes gratis, frit, og uden at indhente tilladelse først
' - dog må selve kildekoden ikke distribueres på andre sites end HTML.dk
' Kontakt HTML.dk hvis du er i tvivl
' ****************************************************************

' Adressen på det RSS-feed der skal loades
extURL = "http://www.dr.dk/nyheder/service/feeds/allenyheder"

' RSS-feedet loades
set xmlDoc = createObject("Msxml.DOMDocument")
xmlDoc.async = false
xmlDoc.setProperty "ServerHTTPRequest", true
xmlDoc.load(extURL)

' Check at RSS-feedet er loadet korrekt
If (xmlDoc.parseError.errorCode <> 0) then
    ' Udskriv eventuelle fejl (for nem fejlretning)
    Response.Write "XML error: " & xmlDoc.parseError.reason
' Fortsæt hvis alt er ok
Else

    ' Åbn elementet <channel>
    set channelNodes = xmlDoc.selectNodes("//channel/*")

    for each entry in channelNodes
        ' De tre obligatoriske elementer i channel lægges i variable
        if entry.tagName = "title" then
            strChannelTitle = entry.text
        elseif entry.tagName = "description" then
            strChannelDescription = entry.text
        elseif entry.tagName = "link" then
            strChannelLink = entry.text
        end if
    next

    ' De tre obligatoriske elementer i channel udskrives
    response.write "<h1>" & strChannelTitle & "</h1>"
    response.write "<p>" & strChannelDescription & "</p>"
    response.write "<p><a href='" & strChannelLink & "'>Besøg " & strChannelTitle & "</a></p>"
    response.write "<hr />"

    ' Åbn elementerne <item>
    set itemNodes = xmlDoc.selectNodes("//item/*")

    For each item in itemNodes
        ' Elementerne i channel lægges i variable med #%# som adskillelse
        if item.tagName = "title" then
            strItemTitle = strItemTitle & item.text & "#%#"
        elseif item.tagName = "link" then
            strItemLink = strItemLink & item.text & "#%#"
        elseif item.tagName = "description" then
            strItemDescription = strItemDescription & item.text & "#%#"
        end if
    next

    ' Elementerne i channel splittes i arrays
    arrItemTitle = split(strItemTitle,"#%#")
    arrItemLink = split(strItemLink,"#%#")
    arrItemDescription = split(strItemDescription,"#%#")

    ' Elementerne i channel udskrives
    response.write "<ul>"
        for a = 0 to UBound(arrItemTitle) - 1
       
        SQL = "INSERT INTO Rsstest(Title, Link, Description)"
        SQL = SQL & "Values("
        SQL = SQL & "'" & arrItemLink(a) & "',"
        SQL = SQL & "'" & arrItemTitle(a) & "',"
        SQL = SQL & "'" & arrItemDescription(a) & "'"
        SQL = SQL & ")"
       
        Set RS = conn.execute(SQL)
   
            response.write "<li>"
            response.write "<a href='" & arrItemLink(a) & "'>" & arrItemTitle(a) & "</a>"
                ' Description udskrives hvis den eksisterer
                if strItemDescription <> "" then
                    response.write "<br />" & arrItemDescription(a)
                end if
            response.write "</li>"
        next
    response.write "</ul>"

    ' Vi rydder op
    set channelNodes = nothing
    set itemNodes = nothing

End If

%>
Avatar billede Slettet bruger
19. februar 2009 - 14:02 #2
Hey... :)

Hvordan fik du lavet det med at den automatisk opretter feedsne til databasen?:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester