08. august 2004 - 20:34Der er
7 kommentarer og 1 løsning
xml fra ACCESS med ASP
Der skulle vel ikke være nogen der ligger inde med et eksempel på et ASP-script der kan hive data ud af en ACCESS-db og forvandle dem til XML OG et eksempel på hvordan man transformerer denne XML-fil til HTML via XSLT.
Jeg kender lidt til XML og XSLT, men ved intet om hvordan de arbejder sammen med ASP.
hmmmmm. Jeg har aldrig helt fattet hvordan det hænger sammen i praksis. Men der er to scripts i eksemplet du henviser til. Skal jeg bruge dem begge og i givet fald hvordan gøres det i praksis? Den XML der bliver genereret, findes den i en fysisk fil eller er den der bare, og hvordan kommunikerer XSLT med den?
Ja du skal bruge begge dele. Føste del er en funktion som laver xml delen og sidste del er det om henter fra databasen.
I det viste eksempel er XML delen i variablen: strXMLData Den kan evt. udskriver direkte til browseren: Response.Write strXMLData så XML'en åbnes som en side i browseren Jeg kender ikke til XSLT.
For lige at blive ved dit første forslag, hvordan foregår det med at fyre de to sripts af? Skal de ligge i hver sin fil i en mappe på serveren sammen med databasen, og hvad gør jeg så?
Set objConn = Server.CreateObject("ADODB.Connection") Set objRS = Server.CreateObject("ADODB.RecordSet")
'Åbner forbindelse til databasen'strConn skal erstattes med den Connection-string du normalt benytter objConn.Open(strConn)
'Vælger poster fra databasen, der skal præsenteres Set objRS = objConn.Execute("SELECT [feltnavne] FROM [tabelnavn] [osv.]")
'Kalder funktionen rs2xml med 3 parametre:'Recordset, root title og children titles strXMLData = rs2xml(objRS, "links", "link") Response.Write strXMLData
objRS.Close Set objRS = Nothing objConn.Close Set objConn = Nothing
'Funktioner
Function rs2xml(ByVal rs, ByVal strRootName, ByVal strChildNames) Dim strValue Response.ContentType = "text/xml" Response.CharSet = "ISO-8859-1" rs2xml = rs2xml & "<?xml version='1.0' encoding='ISO-8859-1'?>" & vbCrLf If Not objRS.EOF Then rs2xml = rs2xml & "<" & strRootName & ">" & vbCrLf Do While Not objRS.EOF rs2xml = rs2xml & vbTab & "<" & strChildNames & ">" & vbCrLf For Each objColumn In objRS.Fields strValue = objColumn.Value If Len(strValue) > 0 Then strValue = Server.HTMLEncode(strValue) rs2xml = rs2xml & vbTab & vbTab &_ "<" & LCase(objColumn.Name) & ">" rs2xml = rs2xml & strValue &_ "</" & LCase(objColumn.Name) & ">" & vbCrLf Next rs2xml = rs2xml & vbTab & "</" & strChildNames & ">" & vbCrLf objRS.MoveNext Loop rs2xml = rs2xml & "</" & strRootName & ">" & vbCrLf End If
End Function %>
Synes godt om
Slettet bruger
08. august 2004 - 22:12#7
Ok, eagleeye, smid et svar. Jeg ser om der er nogen i XSLT-kategorien der kan hjælpe med resten.
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.