af Joachim Cohn Jacobsen, HTML.dk
Sidst opdateret 21. marts 2004
Dette script er en meget simpel RSS reader, der demonstrerer, hvordan du henter data fra en XML-fil, som ligger på en anden server, og præsenterer indholdet på dit websted.
Really Simple Syndication (RSS) er et XML-baseret format for distribution af indhold. Mange sider tilbyder "RSS-feeds" med nyheder, overskrifter, beksrivelser og links tilbage til siden.
HTML.dk tilbyder adskillige RSS feeds, som du kan bruge til at præsentere nyheder fra HTML.dk på dit eget websted, eller læse dem med et stykke software. Overskrift.dk og Feeds.dk har nyttige oversigter med danske RSS-feeds.
Dette meget simple script viser dig princippet bag en RSS reader, der henter nyheder ned på dit eget websted.
<% ' **************************************************************** ' 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.html.dk/rss/dk.edb.internet.webdesign.xml" ' 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 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 %>