webForumDet fria alternativet

XML och ASP?!

15 svar · 1 286 visningar · startad av henkepenke

henkepenkeMedlem sedan juli 200327 inlägg
#1

Hejsan!
Skickade ett mejl till Expressen och frågade var de erbjöd för tjänster när de gäller att ha deras nyheter på ens egna sida. Fick detta svaret:

"Hej!

Det går jättebra. Vi erbjuder våra nyhetsrubriker i XML-format.

Nyheter
http://expressen.se/expressen/jsp/xml.jsp?page=10

Sport
http://expressen.se/expressen/jsp/xml.jsp?page=110

Nöje
http://expressen.se/expressen/jsp/xml.jsp?page=112"

Nu e de så att jag inte fattar hur man ska göra. Nån som har någon ide?

//Henke

SPiNMedlem sedan mars 20007 896 inlägg
#2

Du måste läsa in informationen med MSXML's XMLHTTP, och antingen styla med ett XSL-dokument eller placera informationen där du vill ha den med DOM.

<%
Dim xmlHttp, xmlDoc, xmlElement 'As Objects
Dim xmlText 'As String

set xmlHttp = Server.CreateObject( "MSXML2.ServerXMLHTTP" )
xmlHttp.open "GET", "http://expressen.se/expressen/jsp/xml.jsp?page=110", False
xmlHttp.send

xmlText = xmlHttp.ResponseText

set xmlHttp = Nothing

set xmlDoc = Server.CreateObject( "MSXML2.DOMDocument40" )
xmlDoc.Async = False
xmlDoc.LoadXML xmlText

set xmlElement = xmlDoc.documentElement
osv...

Kika i MSDN och sök här i forumet för att lära dig mer, om du inte redan kan.

henkepenkeMedlem sedan juli 200327 inlägg
#3

Skriv gärna mer, kan verkligen inget om detta...Sitter som ett STORT frågetecken! =/

//Henke

nikoMedlem sedan juni 20022 599 inlägg
#4

Enkelt exempel för att tex lista bara rubrikerna:

<%
Set XMLDoc = CreateObject("MSXML2.DOMDocument")
XMLDoc.setProperty "ServerHTTPRequest", true
XMLDoc.async=false
XMLDoc.Load "http://expressen.se/expressen/jsp/xml.jsp?page=10"
If XMLDoc.parseError.errorCode = 0 Then
%>
<b>Rubriker:</b><p>
<%
	Set nodeLst = XMLDoc.getElementsByTagName("headline")
    	For i = 0 To nodeLst.length - 1
		response.write nodeLst.Item(i).text & "<br>"
         	next
else
	Response.write XMLDoc.parseError.reason
End If
%>
SPiNMedlem sedan mars 20007 896 inlägg
#5

Ah, kan man läsa in ett XML-dokument så, direkt till DOMDocument? Smidigt. :)

nikoMedlem sedan juni 20022 599 inlägg
#6

SPiN skrev:

Ah, kan man läsa in ett XML-dokument så, direkt till DOMDocument?

Ja, XMLHTTP/ServerXMLHTTP är ju egentligen rena HTTP-komponenter utan XML-funktioner (med väldigt missvisande namn). Så länge man klarar sig med GET (i motsats till POST) så ska man undvika att blanda in dem. :)

AddeladdeMedlem sedan jan. 20013 406 inlägg
#7

Varför fungerar inte detta?

<%
Set XMLDoc = CreateObject("MSXML2.DOMDocument")
XMLDoc.setProperty "ServerHTTPRequest", true
XMLDoc.async=false
XMLDoc.Load "http://www.dn.se/DNet/jsp/polopoly.jsp?d=1399"
If XMLDoc.parseError.errorCode = 0 Then
%>
<b>Rubriker:</b><p>
<%
	
	Set nyheter = XMLDoc.getElementsByTagName("item")
	Set nodeLst = XMLDoc.getElementsByTagName("title")
	Set desc = XMLDoc.getElementsByTagName("description")
    	
		For each item in nyheter
		  response.write "<b>"&nodeLst.Item(i).text & "</b><br>"
		  response.write desc.Item(i).text & "<br><br>"
		Next
else
	Response.write XMLDoc.parseError.reason
End If
%>

om jag skriver for I = to 5 step 1 istället för each item in nyheter så fungerar det men då skrivs dagens nyheter ut två gånger på rubriken.

Hur gör man för att bara söka i visa element som exempelvis item? Nån bra sida att titta på för detta?

Bosse168Medlem sedan nov. 20031 018 inlägg
#8

Har dom bytt adress till XML-filerna eller har dom tagit bort dom helt? Någon som vet?

TravoniMedlem sedan okt. 20041 556 inlägg
Bosse168Medlem sedan nov. 20031 018 inlägg
#10

Tackar, men får bara detta felmeddelandet när jag använder den nyhetslänken:

Ett ogiltigt tecken påträffades i textinnehållet.

TroxyMedlem sedan mars 20041 505 inlägg
#11

När jag öppnas Expressens RSS-feed i Firefox så visas inget innehåll.
Antaligen så är det något fel där just nu.

jarvkloMedlem sedan juli 20013 378 inlägg
#12

Expressen renoverar hela sin webbplats i realtid just nu och det är inte bara RSS-filerna som beter sig underligt till och från - just nu ser t.ex. framsidan ganska speciell ut i FireFox ;)

Kontakta dem och felanmäl det du upptäcker.

expressen.se skrev:

Vi uppskattar era felrapporter. Fortsätt skicka in alla fel ni hittar, vi tar självklart fasta på era synpunkter. Mejla till expressen@expressen.se

Bosse168Medlem sedan nov. 20031 018 inlägg
#13

Hur gör man för att även få med länken till nyheterna i loopen?

Set XMLDoc = CreateObject("MSXML2.DOMDocument")
XMLDoc.setProperty "ServerHTTPRequest", true
XMLDoc.async=false
XMLDoc.Load "http://expressen.se/rss/nyheter"

If XMLDoc.parseError.errorCode = 0 Then

	Set nodeLst = XMLDoc.getElementsByTagName("title")
	
    	For i = 0 To nodeLst.length - 1
		
			response.write i &" - "& nodeLst.Item(i).text & "<br />"

		next
Else
	Response.write XMLDoc.parseError.reason
End If
emissionMedlem sedan dec. 19996 721 inlägg
#14

Plocka ut "item"-elementen i stället för "title" och hämta deras "title" och "link", med SelectSingleNode.

Bosse168Medlem sedan nov. 20031 018 inlägg
#15

Får bara felmeddelandet:
Körningsfel i Microsoft VBScript fel '800a01b6'

Objektet stöder inte egenskapen eller metoden.: 'SelectSingleNode'

Set XMLDoc = CreateObject("MSXML2.DOMDocument")
XMLDoc.setProperty "ServerHTTPRequest", true
XMLDoc.async=false
XMLDoc.Load "http://expressen.se/rss/nyheter"

If XMLDoc.parseError.errorCode = 0 Then

	Set nodeLst = XMLDoc.getElementsByTagName("item")
	
    	For i = 0 To nodeLst.length - 1
		
			response.write nodeLst.SelectSingleNode("title") & "<br />"

		next
Else
	Response.write XMLDoc.parseError.reason
End If
emissionMedlem sedan dec. 19996 721 inlägg
#16

nodeLst är en lista, inte en nod.

nodeLst.Item(i).SelectSingleNode("title)" returnerar "title"-noden, om den finns, och då kan du hämta ut värdet från den.

135 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)