Jeg da et forslag til koden dog med udgangspunk i dette eksempel:
http://www.html.dk/scripts/asp/00015/nodeid er det en tæller 2,3,4,5,6,7,8....n eller ??
kode:
<%
xmlfile = server.Mappath ("xmlfilen.xml")
'Benytter FSO til at skrive til filen
set FSO = Server.CreateObject("Scripting.FilesystemObject")
set fil = FSO.OpenTextFile(xmlfile, 2, true)
Set rs = Server.CreateObject("ADODB.RecordSet")
Set conn = Server.CreateObject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="& Server.Mappath("db1.mdb")
conn.Open strDSN
sql = "SELECT * FROM tabelnavn"
Set rs = conn.Execute(sql)
do while not rs.eof
' Gem data som kommasepareret liste
arrID = arrID & ";;" & rs("ID")
arrRE = arrRE & ";;" & rs("parentID")
arrSU = arrSU & ";;" & rs("title")
rs.MoveNext
Loop
' Lav arrays med data
arrID = Split(arrID,";;")
arrRE = Split(arrRE,";;")
arrSU = Split(arrSU,";;")
Rs.Close
Function Threads(intID, nodeid, level)
For m = 1 to Ubound(arrID)
If int(arrRE(m)) = int(intID) Then
nodeid = nodeid+1
sStr = vbCrLf
for xx = 0 to level
sStr = sStr & " "
next
Threads = Threads & sStr & "<menuItem caption=""" & arrSU(m) & """ nodeid=""" & nodeid & """>" & Threads(arrID(m), nodeid, level+1) & sStr & "</menuItem>"
End If
Next
End Function
fil.WriteLine "<?xml version=""1.0"" encoding=""ISO-8859-1""?>"
fil.Write "<menu>"
fil.WriteLine Threads(0,1,0)
fil.WriteLine "</menu>"
fil.Close
%>