webForumDet fria alternativet

Lista nyheter från Expressen?!

XML

7 svar · 565 visningar · startad av henkepenke

Medlem sedan juli 200327 inlägg
Frågan#1

Hejsan!
Tänkte att jag skulle lista nyheter från Expressen. Har fått en sida av dem där jag kan hämta nyheterna.

http://expressen.se/expressen/jsp/xml.jsp?page=112
Nu är det såhär att jag har lyckats att lista dem. Problemet är att jag har gjort en länk där det står "Läs mer här" och då ska man komma till den artikeln på Expressens hemsida. När jag väljer den första nyheten är det inga problem, men när jag väljer nyhet nummer 2 och klicka på länken kommer jag till samma artikel hos expressen. Det idnummret byts inte ut.

Jag skickar med min kod och den sida där nyheterna ligger:

http://web.alltomjonkoping.se/nyheter.asp

<%Set XMLDoc = CreateObject("MSXML2.DOMDocument")
XMLDoc.setProperty "ServerHTTPRequest", true
XMLDoc.async=false
XMLDoc.Load "http://expressen.se/expressen/jsp/xml.jsp?page=112"
If XMLDoc.parseError.errorCode = 0 Then

Set nodeLst =  XMLDoc.getElementsByTagName("headline")
Set nodeLst2 =  XMLDoc.getElementsByTagName("ingress")
Dim myVarnoje
Set root = xmlDoc.documentElement
myVarnoje = root.firstChild.Attributes.Item(0).Value

response.write "<font size=2><b>" & nodeLst.Item(Request.QueryString("artikelId")).text & " </b><br></font><font size=2> " & nodeLst2.Item(Request.QueryString("artikelId")).text & "<br></font><a href=http://www.expressen.se/expressen/jsp/polopoly.jsp?d=112&a=" & myVarnoje & " class=""kalfet"" target=""_blank"">Läs mer här</a>"
End If
%>

Medlem sedan juni 20022 599 inlägg
#2

Det idnummret byts inte ut.

Nej, det är väl inte så konstigt. Du länkar ju alltid till första nyheten.

myVarnoje = root.[b]firstChild[/b].Attributes.Item(0).Value

Istället borde det vara nåt i stil med:

myVarnoje = root.ChildNodes(i).Attributes.Item(0).Value

där du får "i" via den query-parameter du kallar artikelId.

Medlem sedan juli 200327 inlägg
#3

Tack, det gjorde susen....

Medlem sedan juli 200327 inlägg
#4

Det är ju från denna sida jag hämtar allt. Där det står <newline /> vill jag ha ett <br>.

http://expressen.se/expressen/jsp/xml.jsp?page=112

Hur fixar jag de? Här följer koden...

Set XMLDoc = CreateObject("MSXML2.DOMDocument")
XMLDoc.setProperty "ServerHTTPRequest", true
XMLDoc.async=false
XMLDoc.Load "http://expressen.se/expressen/jsp/xml.jsp?page=112"
If XMLDoc.parseError.errorCode = 0 Then

Set nodeLst =  XMLDoc.getElementsByTagName("headline")
Set nodeLst2 = XMLDoc.getElementsByTagName("ingress")
Set nodeLst3 = XMLDoc.getElementsByTagName("newline")
Dim myVarnoje
Set root = xmlDoc.documentElement
Set i = Request.QueryString("artikelId")
myVarnoje = root.ChildNodes(i).Attributes.Item(0).Value 

response.write "<font size=2><b>" & nodeLst.Item(Request.QueryString("artikelId")).text & " </b><br></font><font size=2> " & nodeLst2.Item(Request.QueryString("artikelId")).text & "<br></font><a href=http://www.expressen.se/expressen/jsp/polopoly.jsp?d=112&a=" & myVarnoje & " class=""kalfet"" target=""_blank"">Läs mer här</a>"
End If

Medlem sedan mars 20025 907 inlägg
#5

Re: Lista nyheter från Expressen?!

OT: Vad är URLen till expressens huvudnyheter i samma format. Länken ovan går ju bara till nöjesnyheterna, jag vill alltså ha tag i huvudnyheterna.

Medlem sedan juli 200327 inlägg
Medlem sedan juli 200327 inlägg
Medlem sedan juni 20022 599 inlägg
#8

Där det står <newline /> vill jag ha ett <br>.

Finns säkert nåt smart, men jag kommer inte på det så det får bli brute-force:

	' ...
	' ...
	myVarnoje = root.ChildNodes(i).Attributes.Item(0).Value 

	sIngress = nodeLst2.Item(i).xml
    	sIngress = Replace(sIngress, "<ingress>", "")
    	sIngress = Replace(sIngress, "</ingress>", "")
    	sIngress = Replace(sIngress, "<newline/>", "<br>")

	response.write "<font size=2><b>" & nodeLst.Item(i).text & " </b><br></font><font size=2> " & sIngress ' osv ...
262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)