webForumDet fria alternativet

Hämta nyhter med RSS.

ASPur ASP

4 svar · 793 visningar · startad av asp

Medlem sedan aug. 2002733 inlägg
Frågan#1

Hej.

Jag skulle vilja hämta nyheterna från denna sida:
http://ditrader.di.se/News/rss.aspx

Endast rubrikerna skall synas, de skall separeras med ett |. De skall givetvis vara länkar.

Exempel:

- <item>
  <title>Jarnheimer köper i Spanien</title> 
  <link>[url]http://di.se/Avdelningar/Artikel.aspx?O=RSS&ArticleId=2005%5c07%5c14%5c150255[/url]</link> 
  <description>Tele2 fortsätter att köpa bolag på kontinenten. Stenbecksbolaget betalar 2,4 miljarder kronor för den spanska operatören Comunitel. Bolaget har fokus på företagsmarknaden, men Tele2:s VD Lars-Johan Jarnheimer vill med köpet bli de spanska konsumenternas förstahandsval för bredband.</description> 
  </item>

Borde alltså bli:

<a href="http://di.se/Avdelningar/Artikel.aspx?O=RSS&ArticleId=2005%5c07%5c14%5c150255" target="_blank">Jarnheimer köper i Spanien</a> |

Hoppas det finns någon vänlig själ därute! ;-)

Medlem sedan juli 20041 183 inlägg
#2

Hade redan en väldigt lik funktion :) En hel del kod kommer från en annan dansk sida som jag visst inte sparat adressen till. Aja, här kommer hela sidan:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
	' O==========================================================O
	' Skapar en rss-läsare för att hämta RSS-nyheter
	' O==========================================================O

	'----- Adressen på det RSS-dokumentet som ska laddas
	extURL = "http://ditrader.di.se/News/rss.aspx"
	
	'----- RSS-dokumentet laddas
	Set xmlDoc = CreateObject("Msxml.DOMDocument")
	xmlDoc.async = false
	xmlDoc.setProperty "ServerHTTPRequest", true
	xmlDoc.load(extURL)

	'----- Kollar att RSS-dokumentet laddas korrekt
	If (xmlDoc.parseError.errorCode <> 0) Then
		'----- Skriver ut eventuella fel
		Response.Write "XML error: " & xmlDoc.parseError.reason

	Else 
		'----- Fortsätt då allt är okej
		
		'----- Öppnar elementet <channel>
		Set channelNodes = xmlDoc.selectNodes("//channel/*")
		
		'----- Hämtar information om kanalen
		For Each entry In channelNodes
			'----- De tre obligatoriska elementen i channel läggs i variablar
			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

		'----- Öppnar elementet <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

		'----- Elementen i channel splittras i arrayer
		strItemTitle = Split(strItemTitle,"#%#")
		strItemLink = Split(strItemLink,"#%#")
		strItemDescription = Split(strItemDescription,"#%#")
		
		intNews = UBound(strItemTitle)
	End If
	
	'----- Vi avslutar arbetet med RSS läsaren
	Set channelNodes = Nothing
	Set itemNodes = Nothing
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>RSS-Läsare</title>
</head>

<body>
<p><b>Antal nyheter:</b> <%=intNews%></p>
<p><%
	For i = 1 To intNews
		Response.Write("" & "<a href=""" & strItemLink(i) & """ target=""_blank"">" & strItemTitle(i) & "</a> | " & vbCrLf)
	Next
%></p>
</body>
</html>
Medlem sedan nov. 20017 144 inlägg
#3

Visst eller en klass

Class rss_feed

Private url

Public Property Let rss_url(letUrl)
		url = letUrl
End Property

	public sub showfeed
	Dim xml, chNodes, strChTitle, strChLink, strChDesc, itNodes, item, strItemTitle, strItemLink, strItemDesc, arrItemTitle, arrItemLink, arrItemDesc, a
		set xml = createObject("Msxml.DOMDocument")
		xml.async = false
		xml.setProperty "ServerHTTPRequest", true
		xml.load(url)
		
		If (xml.parseError.errorCode <> 0) then
			Response.Write "XML error: " & xml.parseError.reason
		Else
		
			set chNodes = xml.selectNodes("//channel/*")
		
			for each item in chNodes
				Select Case item.tagName
					Case "title" : strChTitle = item.text 
					Case "link"  : strChLink = item.text
					Case "description"  : strChDesc = item.text
				End Select
			next
		
			response.write "<h2>Nyheter ifrån " & strChTitle & "</h2>"
			response.write "<p>" & strChDesc & "</p>"
			response.write "<p><a href=""" & strChLink & """ target=""_blank"">Gå direkt till " & strChTitle & "</a></p>"
		
			set itNodes = xml.selectNodes("//item/*")

			For each item in itNodes
				Select Case item.tagName
					Case "title" : strItemTitle = strItemTitle & item.text & "~"
					Case "link","guid" : strItemLink = strItemLink & item.text & "~"
					Case "description" : strItemDesc = strItemDesc & item.text & "~"
				End Select
			next
		
			arrItemTitle = split(strItemTitle,"~")
			arrItemLink = split(strItemLink,"~")
			arrItemDesc = split(strItemDesc,"~")

			response.write "<ul>"
				for a = 0 to UBound(arrItemTitle) - 1
					response.write "<li>"
					response.write "<a href=""" & arrItemLink(a) & """ target=""_blank"">" & arrItemTitle(a) & "</a>" 
						if strItemDesc <> "" then response.write "<br />" & arrItemDesc(a)
					response.write "</li>"
				next
			response.write "</ul>"

			set chNodes = nothing : set itNodes = nothing
		End If
	End Sub
End Class

Dim i
set i = new rss_feed
i.rss_url = "http://ditrader.di.se/News/rss.aspx"
i.showfeed()
Set i = Nothing
Medlem sedan juli 20041 183 inlägg
#4

öhm, hemskt vad koderna var lika på flera stälen...Fast det är nog bara slumpen :P

Medlem sedan nov. 20017 144 inlägg
135 ms totalt · 3 externa anrop · v20260731065814-full.8a4e7caf
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)