Nyeste it-job

Simpel RSS reader

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

%>
Relateret materiale på HTML.dk
Relaterede links om emnet

Nyhedsbrev
Tilmeld dig HTML.dk's nyhedsbrev


Er du jobsøgende?

 Ja
 Nej
Se det foreløbige resultat når du har stemt!


Se tidligere afstemninger

 Community
Brugernavn

Adgangskode

Husk

 *  Bliv medlem her
 *  Glemt password?


Om HTML.dk | Oplysninger om ophavsret | Politik om persondata | Annoncer på HTML.dk | RSS

Valid XHTML 1.1! Valid CSS! Powered by Scannet