Avatar billede Slettet bruger
08. august 2004 - 20:34 Der 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.
Avatar billede eagleeye Praktikant
08. august 2004 - 20:37 #1
Tag et kig på dette eksempel:
http://www.magik.dk/da/articles/7/
Avatar billede Slettet bruger
08. august 2004 - 21:03 #2
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?
Avatar billede eagleeye Praktikant
08. august 2004 - 21:09 #3
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.
Avatar billede eagleeye Praktikant
08. august 2004 - 21:16 #4
Her er også et eksempel på XML fra en access datanbase, her gemmes det i en fil:

http://www.codeave.com/asp/code.asp?u_log=149
Avatar billede Slettet bruger
08. august 2004 - 21:28 #5
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å?
Avatar billede eagleeye Praktikant
08. august 2004 - 21:38 #6
Nej de skal ligge i samme fil eks:


<%
Dim objConn, objRS, strXMLData

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
%>
Avatar billede 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.
Avatar billede eagleeye Praktikant
08. august 2004 - 22:13 #8
Ok :)
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