Avatar billede martin_v Nybegynder
10. januar 2001 - 17:13 Der er 8 kommentarer

Læs XML doc via asp en side

Hej Eksperter

Er der en der kan give et eksempel på hvordan jeg kan læse og bruge data fra et xml document?
Lad os sige at jeg vil lave en dropdown liste der indholder data hentet fra xml dokumentet
Avatar billede drean Nybegynder
10. januar 2001 - 21:27 #1
Jeg poster en gæstebog som jeg har lavet...håber du kan bruge den til noget :-)
lige 2 sekunder
Avatar billede drean Nybegynder
10. januar 2001 - 21:42 #2
Se eksempel på: http://drean.mine.nu/testcenter/experten.dk/gb.asp
(denne server er ikke altid oppe :-)

Her er så den første fil som hedder gb.asp:

------------gb.asp start-----------------

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<%    
response.Buffer = TRUE
response.expires = 0
mode = REquest.Querystring(\"mode\")
%>
<html>
<head>
    <title>Drean.dk - Gæstebog</title>
<META NAME=\"Generator\" CONTENT=\"Stone\'s WebWriter 3\">
</head>
<%
\'Made by:
\'René Steenfeldt
\'http://www.drean.dk
\'drean@drean.dk

\'finder filen som indeholder data
strDataFile = Server.MapPath(\"/testcenter/experten.dk\") & \"\\gbdata.xml\"

\'Opretter forbindelse til XML Objectet
Set objXML = Server.CreateObject(\"Microsoft.XMLDOM\")

\'Henter filen ind i objectet
objXML.load(strDataFile)

\'Henter beskeder ind i et object
Set objBeskeder = objXML.documentElement.selectSingleNode(\"beskeder\")
%>
<DIV ID=layerIE STYLE=\"POSITION: absolute; VISIBILITY: hidden\"></DIV><LAYER VISIBILITY=\"hide\" NAME=\"layerNC\"></LAYER>
                        <span style=\"font-size:10pt; font-family:verdana;\">
                        <b>Gæstebog:</b><br>
                        <% if mode <> \"write\" then %>
                        <div align=\"center\"><b><a href=\'gb.asp?mode=write\' class=\'link\'>Skriv en hilsen i gæstebogen</a></b></div><BR><BR>
                        <%
                        end if
                        if mode = \"write\" then%>           
                        <div align=\"center\"><b><a href=\'gb.asp\' class=\'link\'>Læs i gæstebogen</a></b></div><BR><BR>
<%
end if
if mode = \"\" then

    \'Henter de under containere ind som er i beskeder
    Set objBeskedNavn = objBeskeder.getElementsByTagName(\"navn\")
    Set objBeskedDato = objBeskeder.getElementsByTagName(\"dato\")
    Set objBeskedEmail = objBeskeder.getElementsByTagName(\"email\")
    Set objBeskedHilsen = objBeskeder.getElementsByTagName(\"hilsen\")
   
    \'Laver en for-løkke som udskriver de beskeder til et array
    For i=0 To objBeskedNavn.length -1
    strhilsen = Server.HTMLencode(objBeskedhilsen.item(i).text)
    strhilsen = Replace(strHilsen, \"&lt;br&gt;\", \"<br>\")
    With Response
        .Write(\"<div align=\'center\'><table cellspacing=\'0\' cellpadding=\'0\' width=\'500\' style=\'font-family:verdana;font-size:10 pt; border-left: 1px solid rgb(0,0,0); border-right: 1px solid rgb(0,0,0); border-top: 1px solid rgb(0,0,0); border-bottom: 1px solid rgb(0,0,0)\'>\")
        .Write(\"<tr><td style=\'background-color:#808080; border-bottom: 1px solid rgb(0,0,0);\'><a href=\'mailto:\" & Server.HTMLencode(objBeskedEmail.item(i).text) & \"\' class=\'a\'>\" & Server.HTMLencode(objBeskedNavn.item(i).text) & \"</a>\")
        .Write(\"&nbsp;<font face=Verdana size=1>(d.\" & Server.HTMLencode(objBeskedDato.item(i).text) & \")</font></td></tr>\")
        .Write(\"<tr><td valign=\'top\'>\" & strHilsen & \"</td></tr>\")
        .Write(\"</table></div><br>\")
        .Write(\"<a href=\'gb.asp?mode=slet&id=\" & i & \"\' class=\'link\'>Slet besked</a>\")
    end With
    Next
end if
if mode = \"write\" then
    %>
    <div align=\"center\">
    <form action=\"gb.asp?mode=append\" method=\"post\">
    <table>
    <tr>
    <td><span style=\'font-size:10pt; font-family:verdana;\'>Navn:</span></td>
    <td><input type=\"text\" name=\"navn\" class=\"input\"></td>
    </tr>
    <tr>
    <td><span style=\'font-size:10pt; font-family:verdana;\'>Email:</span></td>
    <td><input type=\"text\" name=\"email\"  class=\"input\"></td>
    </tr>
    <tr>
    <td><span style=\'font-size:10pt; font-family:verdana;\'>URL:</span></td>
    <td><input type=\"text\" name=\"URL\" value=\"http://\"  class=\"input\"></td>
    </tr>
    <tr>
    <td valign=\"top\"><span style=\'font-size:10pt; font-family:verdana;\'>Hilsen:</span></td>
    <td><textarea name=\"hilsen\" cols=\"40\" rows=\"10\" class=\"input\"></textarea></td>
    </tr>
    <tr>
    <td colspan=\"2\" align=\"center\">
    <input type=\"submit\" value=\"gem hilsen\" class=\"button\">
    </td>
    </tr>
    </table>
<BR>
<BR>
<B>Bemærk:</B> Der kan ikke bruges HTML-tags i gæstebogen.

    </div>
    </form>
                        <%
                        end if
                        if mode = \"append\" then

        \'Gemmer det som skal sættes ind i XML filen i en streng
        strHilsen = REplace(Request.form(\"hilsen\"), chr(13), \"<br>\")
        strHilsen = Server.HTMLencode(strHilsen)
        strNyBesked = \"<besked>\" & Chr(13) & Chr(10) & Chr(9) &_
        \"<navn>\" & Server.HTMLencode(Request.form(\"navn\")) & \"</navn>\" & Chr(13) & Chr(10) & Chr(9) & _
        \"<dato>\" & Server.HTMLencode(Date()) & \"</dato>\" & Chr(13) & Chr(10) & Chr(9) & _
        \"<email>\" & Server.HTMLencode(Request.form(\"email\")) & \"</email>\" & Chr(13) & Chr(10) & Chr(9) & _
    \"<hilsen>\" & strHilsen & \"</hilsen>\" & Chr(13) & _
    Chr(10) & \"</besked>\"

                        Set objXML2 = Server.CreateObject(\"Microsoft.XMLDOM\")
                      objXML2.loadXML(strNybesked)
                      Set objNybesked = objXML2.documentElement

objBeskeder.insertBefore objNyBesked, objBeskeder.childNodes(0)

objXML.save(strDataFile)
Response.Redirect(\"gb.asp\")
end if
if mode = \"slet\" then

objBeskeder.removeChild(objBeskeder.childNodes.item(Request.Querystring(\"id\")))

objXML.save(strDataFile)
Response.Redirect(\"gb.asp\")
end if
%>
</body>
</html>

------------gb.asp stop------------------

Og så XML filen...der skal nok lige ændres i strDataFil så den bliver \"mappet\" ordentligt :)

------------gbdata.xml start-----------------

<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<guestbook>
    <beskeder>
        <besked>
            <navn>Drean</navn>
            <dato>01-01-2001</dato>
            <email>drean@drean.dk</email>
            <hilsen>Hej med dig...&lt;br&gt;
Håber det går godt.&lt;br&gt;
Fed side, skal jeg nok anbefale til alle mine venner ;-&gt;</hilsen>
        </besked>
    </beskeder>
</guestbook>

------------gbdata.xml stop------------------
Avatar billede drean Nybegynder
10. januar 2001 - 21:44 #3
Der skulle være nok at gå i gang med :-) Her kan du se hvordan man læser fra et XML doc og skriver til det, og sletter fra det :-)
Håber du kan bruge det :-)
Avatar billede martin_v Nybegynder
11. januar 2001 - 09:28 #4
Mange tak for svaret...
Et sidste spørgsmål...
Kan man ikke undgå at skulle bruge
For i=0 To objBeskedNavn.length -1

kan man ikke gøre noget i stilen af
do while not objBeskedNavn.eof
Avatar billede drean Nybegynder
11. januar 2001 - 20:04 #5
Ved jeg faktisk ikke...du kan jo prøve, men der er jo ikke smidt i et recordset der, men det kan man også gøre...Men du kan jo prøve at kigge her:
http://www.msdn.microsoft.com/code/default.asp?URL=/code/topic.asp?URL=/msdn-files/028/000/072/topic.xml

Her er en del samples til download, og også lidt dokumentation, også XML i forbindelse med ASP :-)
Avatar billede drean Nybegynder
30. januar 2001 - 01:25 #6
Har du lyst til at acceptere svaret eller hvad ???
Avatar billede chris Nybegynder
31. maj 2001 - 13:29 #7
Sub LoadViaHttp(URLxml, xXsl)
\'URLxml - URL til XML filen
\'xXsl - path til din XSL fil
  Dim xmlHttp
  Dim xmlDoc
  Dim xslDoc

Set xmlHttp = Server.CreateObject(\"Microsoft.XMLHTTP\")
xmlHttp.open \"GET\", URLxml, false
xmlHttp.send()               
Set xmlDoc = Server.CreateObject(\"MICROSOFT.XMLDOM\")
Set xslDoc = Server.CreateObject(\"MICROSOFT.XMLDOM\")
xmlDoc.async = false
xslDoc.async = false
xmlDoc.Load xmlHttp.responseXML
xslDoc.Load Server.MapPath(xXsl)
Response.Write xmlDoc.transformNode(xslDoc)
Set xmlDoc = nothing
Set xslDc = nothing
Set oXMLHttp = nothing
End Sub
Avatar billede drean Nybegynder
07. august 2001 - 00:21 #8
Du skal da endelig ikke acceptere...eller afvise svaret !
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