Jag var tvungen att skapa en ny tråd för den uppdaterade versionen av funcDBtoXML(), eftersom att jag inte kunde ladda upp den nya filen på servern.
Här kommer en funktion som skapar en XML-fil utfrån ett RecordSet. När du anger filnamnet måste du ta med hela sökvägen, alltså C:\inetpub\wwwroot\mapp\minXML.xml t.ex. Smidigast är väl att använda Server.MapPath("/mapp/minXML.xml"). :)
Funktionen returnerar ett objekt av typen XMLDOM, med innehållande XML från databasen.
XML-filens rotelement blir det filnamn som du väljer till filen, och varje post i databasen hamnar i elementet row.
<Uppdaterat>
Från förra versionen har jag lagt till två nyheter. Den första är att fälttypen i databasen läggs till som attribut under rätt element.
Det andra som är uppdaterat är att funktionen returnerar ett objekt av typen XMLDOM istället för en sträng med XMLen. Det är för att det ska vara lättare för användaren att manipulera XMLen, efter att filen har skapats. Du använder då objektet precis som när du använder ett vanligt objekt av XMLDOM.
Kan lägga till att spango gav mig förslaget... :)
</Uppdaterat>
Ett exempel på användning:
Databasen:
id namn epost icq
1 SPiN [email]bjorne.w@telia.com[/email] 38955589
2 Usr2 usr2@domän.se 000
Scriptet:
<%
Dim objC, objRS '# Objekt
Dim sSQL, strXMLFil '# Variabler
set objC = Server.CreateObject("ADODB.Connection")
objC.Open "driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/minDatabas.mdb")
sSQL = "SELECT id, namn, epost FROM minTabell ORDER BY id ASC"
set objRS = objC.Execute(sSQL)
set objXML = funcDBtoXML(objRS, Server.MapPath("/databasXML.xml"))
objRS.Close
objC.Close
set objRS = Nothing
set objC = Nothing
Response.Write objXML.xml
%>
Resultat i XML-filen:
<?xml version="1.0" encoding="ISO-8859-1"?>
<databasXML>
<row>
<id type="Number">1</id>
<namn type="Text">SPiN</namn>
<epost type="Text">bjorne.w@telia.com</epost>
</row>
<row>
<id type="Number">2</id>
<namn type="Text">Usr2</namn>
<epost type="Text">usr2@domän.se</epost>
</row>
</databasXML>
Funktionen finns här.
Diskussionstråd för scriptet finns här.
Enjoy! :)
------------------
SPiN, bjorne.w@telia.com
-- Tekniska framsteg är som en yxa i händerna på en kriminell galning / Albert Einstein --