webForumDet fria alternativet

Funktionen funcDBtoXML

ASP

0 svar · 888 visningar · startad av SPiN

Medlem sedan mars 20007 896 inlägg
Frågan#1

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 --

251 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)