webForumDet fria alternativet
Logga in / Bli medlem

XMLHTTP Problem, vill bara lista 5 st

ASP

8 svar · 351 visningar · startad av airwolf

Medlem sedan okt. 2003132 inlägg
Trådstart#1

Jag har vill med koden nedan lista ut nyheterna från honda.
Allt fungerar förutom länkarna, sen skulle jag vilja kunna
sätta att bara det 5 senaste nyheterna ska listas.

Nån som har koll på detta?
Jag har letat som en tok här på forumet och hoppas inte
frågan ställts förut för jag hittar den inte.

Länk till sidan: http://www.hondaklubben.com/news.asp

/Daniel

<%
   function BinToText(varBinData, intDataSizeInBytes)
  const adFldLong = 128
  const adVarChar = 200
  set objRS = Server.CreateObject("ADODB.Recordset")
  
  objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
  objRS.Open
  
  objRS.AddNew
  objRS.Fields("txt").AppendChunk(varBinData)
  tmp = objRS("txt").Value
  objRS.Close
  BinToText = tmp
end function
url = "http://www2.publicistbyran.se/honda/se/news/"
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www2.publicistbyran.se/honda/se/news/default.asp", False

objHTTP.Send
strHTML = BinToText(objHTTP.responseBody,35000)
Set objHTTP = Nothing

Set objRegExp = New regexp
objRegExp.Global = True
objRegExp.IgnoreCase = true

objRegExp.Pattern = "<span class=hondabrod>(.*?)</span>"

Set nyhet = objRegExp.Execute(strHTML)

For each item in nyhet
nyhet = objRegExp.Replace(item.value, "$1")

response.write nyhet & "<br>"
Next
%>
Medlem sedan nov. 20017 144 inlägg
#2

Går säkert att göra på fler sätt, men här är ett:

function BinToText(varBinData, intDataSizeInBytes)
  const adFldLong = 128
  const adVarChar = 200
  set objRS = Server.CreateObject("ADODB.Recordset")
  
  objRS.Fields.Append "txt", adVarChar, intDataSizeInBytes, adFldLong
  objRS.Open
  
  objRS.AddNew
  objRS.Fields("txt").AppendChunk(varBinData)
  tmp = objRS("txt").Value
  objRS.Close
  BinToText = tmp
end function

Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", "http://www2.publicistbyran.se/honda/se/news/default.asp", False

objHTTP.Send
strHTML = BinToText(objHTTP.responseBody,35000)
Set objHTTP = Nothing

Set objRegExp = New regexp
objRegExp.Global = True
objRegExp.IgnoreCase = true

objRegExp.Pattern = "<span class=hondabrod>(.*?)</span>"

Set nyhet = objRegExp.Execute(strHTML)

sub myHondaLoop(myUrl, MyTarget)
	For each item in nyhet
		if i > 9 then exit sub
			nyhet = objRegExp.Replace(item.value, "$1")
			Response.write replace(nyhet,"href=""","target="""& MyTarget &""" href="""& MyUrl) & "<br>"
		i=i+1
	Next
end sub

call myHondaLoop("http://www2.publicistbyran.se/honda/se/news/","_blank")
Medlem sedan okt. 2003132 inlägg
#3

Tackar!
Funger kanon, nu ska jag bara lista ut vad du gör i koden :)

Medlem sedan okt. 2003132 inlägg
#4

En liten grej, just nu är det 2 radbryt mellan varje nyhet, kan man reducera det till endast 1?

Medlem sedan nov. 20017 144 inlägg
#5
sub myHondaLoop(myUrl, MyTarget)
	For each item in nyhet
		if i > 9 then exit sub
			nyhet = objRegExp.Replace(item.value, "$1")
			Response.write replace(nyhet,"href=""","target="""& MyTarget &""" href="""& MyUrl)
		i=i+1
	Next
end sub

borde funka

Medlem sedan nov. 20017 144 inlägg
#6

Såg lite fjunigt ut. Detta då?

sub myHondaLoop(myUrl, MyTarget)
	For each item in nyhet
		if i > 9 then exit sub
			nyhet = objRegExp.Replace(item.value, "$1")
			nyhet = replace(nyhet,"<br>",vbcr)
			Response.write replace(nyhet,"href=""","target="""& MyTarget &""" href="""& MyUrl) & "<br>" & vbcr
		i=i+1
	Next
end sub
Medlem sedan okt. 2003132 inlägg
#7

Den senare funkade!
Tackar

Medlem sedan nov. 2002830 inlägg
#8

Sätt gärna tråd som löst om du är nöjd med din hjälp :)

Medlem sedan okt. 2003132 inlägg
#9

Trodde jag hade gjort det :\

250 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)