Avatar billede fommy Nybegynder
04. april 2008 - 11:18 Der er 7 kommentarer og
1 løsning

Data fra XML på ASP side

Jeg har et program der laver en xml fil der ser sådan ud:

<?xml version='1.0' encoding='ISO-8859-1' ?>
<PlayList>
<Entry Event="01"
Type="Played"
Category="MUS"
Id="3310"
Title="BUBBLY"
Artist="COLBIE CAILLIAT"
Album=""
Composer=""
MusicId="070716"
Duration="178000"
StartTime="Fri Apr 04 10:42:37 2008"
/>
<Entry Event="02"
Type="Played"
Category="MUS"
Id="1128"
Title="Over my shoulder"
Artist="Mike and the mechanics"
Album=""
Composer=""
MusicId=""
Duration="207000"
StartTime="Fri Apr 04 10:45:31 2008"
/>
<Entry Event="03"
Type="Playing"
Category="MUS"
Id="0477"
Title="HELLO"
Artist="LIONEL RICHIE"
Album=""
Composer=""
MusicId=""
Duration="245000"
StartTime="Fri Apr 04 10:48:56 2008"
/>
</PlayList>

Det vil jeg gerne have smidt ud på en side, så man kan se hvilken kunstner og nummer der er blevet spillet hvornår.
Jeg er kan bare ikke helt gennemskue hvad det er der skal til.
Musikprogrammet der laver den her fil, streamer selv filen så den skal hentes fra en URL, men hvordan gøre jeg lige det.
Jeg har søgt lidt rundt på nettet, men kan ikke rigtig få det til at virke som jeg gerne vil.
Hvordan gør jeg?
Avatar billede w13 Novice
04. april 2008 - 11:27 #1
Mon ikke du kan bruge dette: http://www.html.dk/scripts/asp/00020/
Avatar billede fommy Nybegynder
04. april 2008 - 11:51 #2
Den side har jeg kigget lidt på, men er stadig ikke helt sikker.
Jeg har lavet et script der spytter tingene ud der står på den her måde:

<?xml version="1.0"?>

<main>
<title>Our Page.xml file</title>
<heading>This is a test heading</heading>
<paragraph>This is our paragraph and you can write whatever
  you want to in this space.</paragraph>
  <testHTML><![CDATA[We will enclose some HTML code in CDATA section now :<br>
<table width="60%" border="1" bordercolor="silver" cellspacing="2"
      cellpadding="3">
    <tr>
    <td>
      You can write any HTML code or for that matter any type of text inside
      the CDATA section without a fear of getting any error.<br><br>
      Note if we write this without the CDATA tags, the xml parser will
      raise an error and won't show the document.
    </td>
    </tr>
  </table>]]></testHTML>
  </main>

Altså pakket ind i hver deres tag, men det gør de ikke i den her fil, og så er det jeg ikke helt ved hvordan jeg skal trække data ud.
Det er jo bare en linie der ser sådan ud:

<Entry Event="03" Type="Playing" Category="MUS" Id="0477" Title="HELLO" Artist="LIONEL RICHIE" Album="" Composer="" MusicId="" Duration="245000" StartTime="Fri Apr 04 10:48:56 2008" />

xmlDoc.selectNodes Bruger man det til at kalde den overordnede tag, i det her tilfælde <PlayList>, eller er jeg helt gal på den?
Avatar billede w13 Novice
04. april 2008 - 11:54 #3
Det er korrekt.

Og attributterne fanger du med:

.attributes.getNamedItem("Value").
Avatar billede fommy Nybegynder
04. april 2008 - 12:31 #4
Jeg er bange for at jeg ikke helt forstår det her :(
Indtil videre har jeg klampet det her sammen, men det virker ikke, af sikkert indlysende årsager, som jeg bare ikke kan gennemskue endnu..

<%
' Adressen på filen der skal loades
extURL = "http://xxx.xxx.xxx.xxx/playlist.xml"

' Filen loades
set xmlDoc = createObject("Msxml.DOMDocument")
xmlDoc.async = false
xmlDoc.setProperty "ServerHTTPRequest", true
xmlDoc.load(extURL)

' Check at filen 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 <PlayList>
    set playlistNodes = xmlDoc.selectNodes("//PlayList/")

    for each entry in playlistNodes
        ' De obligatoriske elementer i playlist lægges i variable
        if xmlDoc.attributes.getNamedItem("Value") = "Title" then
            strTitle = entry.text
        end if
       
        response.write strTitle
    next

    ' Vi rydder op
    set playlistNodes = nothing

End If
%>
Avatar billede w13 Novice
04. april 2008 - 12:37 #5
Hvordan virker det ikke?
Avatar billede w13 Novice
04. april 2008 - 12:37 #6
I øvrigt kan du vist rette:
set playlistNodes = xmlDoc.selectNodes("//PlayList/")
til:
set playlistNodes = xmlDoc.documentElement

Det er jo lidt mere dynamisk.
Avatar billede fommy Nybegynder
04. april 2008 - 12:44 #7
Jeg får en fejl:

Microsoft VBScript runtime  error '800a01b6'
Object doesn't support this property or method
/xmltest.asp, line 21

og det er: for each entry in playlistNodes
Avatar billede fommy Nybegynder
05. november 2008 - 18:27 #8
Lukketid
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