Avatar billede und Nybegynder
27. oktober 2005 - 13:59 Der er 3 kommentarer og
1 løsning

Hentning af XML data og visning i ASP

Hej Eksperter,

Jeg ønsker at hente udvalgte valutakurser fra Nationalbankens XML-dokument, som tidligere er blevet behandlet i dette forum. Jeg har fået vist disse på min egen browser men fandt ud af, at der er noget, som hedder serverside scripting, så nu er jeg ovre i ASP, men nu jeg kan ikke få vist de data, som jeg ønsker at udvælge. Jeg har fået blandet ASP- og Java Script sammen og har behov for hjælp. Koden ser sådan ud:

<%
Option Explicit
Dim objXml, objXMLDOM, currNodes, i, code, desc, rate

'Opretter en instans af Microsoft.XMLHTTP, så det er muligt at få fat på dokumentet
Set objXml = Server.CreateObject("MSXML2.ServerXMLHTTP")


'Opretter en instans af Microsofts XML-parser, XMLDOM
Set objXMLDOM = Server.CreateObject("Microsoft.XMLDOM")

'Opretter forbindelse til xml-dokumentet
Call objXml.Open("GET", "http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml", False)

objXml.Send

'Lægger indholdet af dokumentet over i et XML-parser objekt
Set objXMLDOM = objXml.ResponseXML


'Henter alle valutakurs-elementer ud
Set currNodes = objXMLDOM.getElementsByTagName("currency")

'Løber alle valutakurs-elementer igennem og udskriver dem
'Attributter hentes med getAttribute("attributnavn")
For i = 0 To currNodes.length - 1

    set currNodes = currNodes(i)

    set code = currNodes.getAttribute("code")
    set desc = currNodes.getAttribute("desc")
    set rate = currNodes.getAttribute("rate")
   
    if code = "USD" Then usd = rate
    if code = "EUR" Then eur = rate
    if code = "SGD" Then sgd = rate
    if code = "CNY" Then cny = rate

   
    Response.Write("USD: " & usd & "<br>")

Next
   
    Set currNodes = Nothing
   
Set objXMLHTTP = Nothing
Set objXMLDOM = Nothing
%>

Mvh
UND
Avatar billede Slettet bruger
27. oktober 2005 - 15:05 #1
Hejsa

Hvad med noget lignende det her:
<%
Option Explicit
Dim objXml, objXMLDOM, currNodes, i, code, desc, rate

'Opretter en instans af Microsoft.XMLHTTP, så det er muligt at få fat på dokumentet
Set objXml = Server.CreateObject("MSXML2.ServerXMLHTTP")


'Opretter en instans af Microsofts XML-parser, XMLDOM
Set objXMLDOM = Server.CreateObject("Microsoft.XMLDOM")

'Opretter forbindelse til xml-dokumentet
Call objXml.Open("GET", "http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.xml", False)

objXml.Send

'Lægger indholdet af dokumentet over i et XML-parser objekt
Set objXMLDOM = objXml.ResponseXML


'Henter alle valutakurs-elementer ud
Set currNodes = objXMLDOM.getElementsByTagName("currency")

'Løber alle valutakurs-elementer igennem og udskriver dem
'Attributter hentes med getAttribute("attributnavn")
For i = 0 To currNodes.length - 1

    set currNodes = currNodes(i)

    set code = currNodes.getAttribute("code")
    set desc = currNodes.getAttribute("desc")
    set rate = currNodes.getAttribute("rate")
   
if code = "USD" Then
Response.Write "USD: " & usd & "<br>"
elseif code = "EUR" Then
Response.Write "EUR: " & eur & "<br>"
elseif code = "SGD" Then
Response.Write "SGD: " & sgd & "<br>"
elseif code = "CNY" Then
Response.Write "CNY: " & cny & "<br>"
else
Response.Write ""
end if
Next
   
    Set currNodes = Nothing
   
Set objXMLHTTP = Nothing
Set objXMLDOM = Nothing
%>

Jeg har ikke tjekket om dette virker, men i hvert fald er denne if-sætning fra asp-verden...

\Dan
Avatar billede fennec Nybegynder
27. oktober 2005 - 15:11 #2
Eller sådan:

<%
' Adressen på det RSS-feed der skal loades
extURL = "http://www.nationalbanken.dk/dndk/valuta.nsf/valuta.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
    set channelNodes = xmlDoc.selectNodes("//exchangerates/dailyrates/*")

    for each entry in channelNodes
        code = entry.getAttribute("code")
        desc = entry.getAttribute("desc")
        rate = entry.getAttribute("rate")
       
        if code = "USD" Then usd = rate
        if code = "EUR" Then eur = rate
        if code = "SGD" Then sgd = rate
        if code = "CNY" Then cny = rate
       
    next
    Response.write usd &"<br>"
    Response.write eur &"<br>"
    Response.write sgd &"<br>"
    Response.write cny &"<br>"
    set channelNodes = nothing
   
End If

%>
Avatar billede und Nybegynder
28. oktober 2005 - 09:52 #3
Hej,

Dannielsens input virker desværre ikke efter hensigten, hvilket uden tvivl skyldes mit utilstrækkelige grundlag, dog er if-sætning fra asp-verdenen noteret. Fennecs virker imidlertid fint, og derfor går mine point hertil. Tak for hjælpen begge to.

Mvh
UND
Avatar billede fennec Nybegynder
28. oktober 2005 - 09:59 #4
.o) <-- One Eyed Jack
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester