Avatar billede anewbis Nybegynder
03. april 2006 - 18:42 Der er 11 kommentarer og
1 løsning

udskrive en xml liste med vbscript

Hej, jeg skal bruge en stump kode der kan udskrive følgende liste af produkter:

Den skal helst være crossbrowser kombatibel! :-)



Begin produkter.xml
----
<?xml version="1.0" encoding="ISO-8859-1"?>
<produktgruppe>
    <produkt>
        <navn>1</navn>
        <beskrivelse>det er 1</beskrivelse>
        <billede>1.jpg</billede>
        <pris>200</pris>
    </produkt>
    <produkt>
        <navn>2</navn>
        <beskrivelse>Det er 2</beskrivelse>
        <billede>2.jpg</billede>
        <pris>400 kroner</pris>
    </produkt>
</produktgruppe>
----
End produkter.xml
Avatar billede mitbrugernavn Praktikant
04. april 2006 - 08:41 #1
går ud fra at det er xml du har på serveren.
Du skal betragte det som en database -

Inden du lægger dit regneark op (vi kalder regnearket produktblad) - skal du navngive kolonnerne ->
marker kolonnerne navn,beskrivelse,billed,pris - vælg indsæt - vælg navn - giv nu kolonnerne et navn f.eks. listen

Set exConn = Server.CreateObject("ADODB.Connection")
exConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("produktblad") & ";" & "Extended Properties=""Excel 8.0;HDR=Yes;"";"

strSQL = "Select * from listen"
set rs = conn.execute(strSQL)
if not rs.eof then
do
response.write rs("navn") & " "
response.write rs("beskrivelse") & " "
' osv

rs.movenext
loop while not rs.eof
end if
Avatar billede mitbrugernavn Praktikant
04. april 2006 - 08:51 #2
undskyld jeg så det lige som et alm. regneark - men kan du bruge svaret til noget så skal 1 linie i regnearket være kolonne navne
Avatar billede fennec Nybegynder
04. april 2006 - 09:45 #3
Det er bare en ganske almindelig udskrift.
Hvor har du de produkter, der skal udskrives?? I en DB?? For så er det noget i denne stil:

<% @LANGUAGE = VBScript %><%
Option Explicit
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "no-cache"
Response.Expires = -1
Response.ContentType = "application/xml"

dim Conn, Rs

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDB
%>
<?xml version="1.0" encoding="ISO-8859-1"?>
<produktgruppe><%
set rs = conn.execute("select * from product order by name")
while not rs.eof %>
    <produkt>
        <navn><%= rs("name") %></navn>
        <beskrivelse><%= rs("besk") %></beskrivelse>
        <billede><%= rs("pic") %></billede>
        <pris><%= rs("price") %></pris>
    </produkt><%
  rs.MoveNext
wend %>
</produktgruppe>
Avatar billede fennec Nybegynder
04. april 2006 - 09:49 #4
Det er stadig en ASP fil, men resultatet er XML, så du kalder bare www.ditSite.dk/produkter.asp

Hvis det skal være en XML fil, fordi den f.eks skal downloades, skal du bruge FSO til at oprette/skrive filen.
Avatar billede anewbis Nybegynder
04. april 2006 - 11:13 #5
Tak for hjælpen indtil videre! det ser ud til at jeg ikke har formuleret mig klart nok - jeg har min xmlfil allerede, det er meningen at man skal kunne oprette produkter i den ved at skrive produkternes specifikationer som jeg har gjort i mit xmleksempel. Det jeg skal bruge fra jer er koden der kan udskrive indholdet i min xml fil.
Avatar billede fennec Nybegynder
04. april 2006 - 12:56 #6
Bare så jeg forstår dig ret. Så har du xml filen liggende på serveren, men du vil trække alle informationerne ud så du kan behanle dem i ASP??
Avatar billede anewbis Nybegynder
06. april 2006 - 00:18 #7
Fennec: RIGHT ON, det er lige præcis det jeg vil. Det kan være jeg ikke forstod din løsning hvis det er det du har svaret (jeg kan først teste på mandag). Men det er i hvert fald hovedet på sømmet du har der:

ASP dokumentet skal bygges, således at asp siden der viser produkterne kan opdateres ved en opdatering af xmldokumentet. Dvs. at hvis jeg opretter et nyt produkt i xml og går ind på min asp side, så kan den finde ud af det.

mitbrugernavn: Jeg kan godt se ideen da jeg selv er dbguy normalt, men jeg kan ikke få det til at virke, jeg ved jeg selv skal definere StrDB, men der mangler vist noget. Jeg kan først teste yderligere på mandag, så uploader jeg kildekoden.

Hav en god weekend og tak for hjælpen indtil videre begge to!!
Avatar billede fennec Nybegynder
06. april 2006 - 08:42 #8
Så er vi over i noget RSS-feed. Jeg har tilpasset et af min egne feeds:

dim extURL, xmlDoc, xmlNode, xmlItems, item, dataArr(3), navnArr, besArr, picArr, prisArr, f
extURL = "http://www.DitSite.dk/ditXML.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 <produktgruppe>
    set xmlNode = xmlDoc.selectNodes("//produktgruppe/*")

    ' Åbn elementerne <produkt>
    set xmlItems = xmlDoc.selectNodes("//produkt/*")

    For each item in xmlItems
        ' Elementerne i produkt lægges i variable med #%# som adskillelse
        if item.tagName = "navn" then
            dataArr(0) = dataArr(0) & item.text & "#%#"
        elseif item.tagName = "beskrivelse" then
            dataArr(1) = dataArr(1) & item.text & "#%#"
        elseif item.tagName = "billede" then
            dataArr(2) = dataArr(2) & item.text & "#%#"
        elseif item.tagName = "pris" then
            dataArr(3) = dataArr(3) & item.text & "#%#"
        end if
    next

    ' Elementerne i dataArr splittes i subArrays
    navnArr = split(dataArr(0),"#%#")
    besArr = split(dataArr(1),"#%#")
    picArr = split(dataArr(2),"#%#")
    prisArr = split(dataArr(3),"#%#")

    ' Elementerne kan nu udskrives
    for f = 0 to UBound(navnArr) - 1
        Response.write navnArr(f)
        Response.write besArr(f)
        Response.write picArr(f)
        Response.write prisArr(f)
    next

    ' Vi rydder op
    set xmlItems = nothing
    set xmlNode = nothing
End If
set xmlDoc = nothing
Avatar billede anewbis Nybegynder
10. april 2006 - 15:48 #9
Okay tak for hjælpen drenge, fennec du har helt ret i dit sidste eksempel, jeg kan bare ikke få det til at køre :((

Jeg får denne fejl: "XML error: Only one top level element is allowed in an XML document. "

Her er mit XML dokument:
<?xml version="1.0" encoding="ISO-8859-1"?>
<produktliste>
    <produkt>
            <navn>
              Tandboerste
            </navn>
            <beskrivelse>
                Kan muligvis ogsoe anvendes til at rengøre grillen!
            </beskrivelse>
            <type>
                Str. XL
            </type>
            <pris>
                kr. 500,00
            </pris>
    </produkt>
</produktliste>
Avatar billede anewbis Nybegynder
10. april 2006 - 16:35 #10
Nice, nu virker det, havde selv lavet en lille brøler. Fennec du er genial. Lav lige et svar. Tak til jer, men fennec tager prisen i denne omgang.

/A
Avatar billede fennec Nybegynder
18. april 2006 - 11:35 #11
.o) <-- One Eyed Jack
Avatar billede anewbis Nybegynder
19. april 2006 - 08:26 #12
mange tak min ven.
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