Avatar billede bennetsen Nybegynder
05. september 2003 - 08:32 Der er 6 kommentarer og
1 løsning

XML nybegynder problemer

Hej,

Jeg forsøger at læse en xml-fil ind i en asp fil og gerne derfra ind i en access database.

Jeg har nedenstående xml-fil og har prøvet forskelige eksempler fra nettet, men kan ikke få det til at virke

Er der en som kan hjælpe mig med et lille eksempel, så jeg kan komme videre?

På forhånd tak

-------xml kode ---------------------
<fields xmlns="http://www.quask.com/quaskformserver/quaskformdata" appName="HTML Form Client" appVersion="0.99" guid="978EC73489874393A22B5DE58A5465BE" version="29586288-9466EAD077E7F13A" title="test_data" successURL="http://demo.dk/test_data.htm" failureURL="http://demo.dk/test_data.htm" singleResponse="false" rid="" source="http://demo.dk/test_data.xml" afterSend="0" time="20030905 05:52:25">
<field id="174">Ole</field>
<field id="175">Larsen</field>
<field id="176">Havbakken 8</field>
<field id="177">7800</field>
<field id="178">Ullerup</field></fields>
Avatar billede eagleeye Praktikant
05. september 2003 - 08:48 #1
Hvis du vil læse hele indholdet fra file ind i en database så prøv med readAll.:


<%
set fso=Server.CreateObject("Scripting.FileSystemObject")
set f=fso.OpenTextFile(Server.MapPath("dinXMLfil.xml"),1)
indhold = f.ReadAll
f.Close


'Åbner til databasen:
Set conn = Server.CreateObject("ADODB.Connection")
connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& server.mappath("db.mdb")
Conn.Open connString

'Husk altid  at ændre en ' til to '' for at undgå SQL syntax fejl
indhold = replace(indhold, "'", "''")

SQL = "INSERT INTO dintabel (xmlkolonne) VALUES ('" & indhold & "')"
Conn.Execute(SQL)

Conn.Close
%>
Avatar billede bennetsen Nybegynder
05. september 2003 - 08:52 #2
er xmlkolonne = f.eks. <field id="174">?
Avatar billede eagleeye Praktikant
05. september 2003 - 08:56 #3
Nej..

Hvordan skal det ind i databasen??
Det eks jeg har lavet læser hele indholdet fra filen og smider det i en kolonne.
Avatar billede bennetsen Nybegynder
05. september 2003 - 09:04 #4
Jeg har en tabel ("navn") og felterne fornavn, efternavn, adresse, postnr og by
Her vil jeg gerne have smidt Field id 174 ind i fornavn, Field id 175 ind i efternavn osv
Avatar billede bennetsen Nybegynder
05. september 2003 - 10:55 #5
Nu har jeg da fået xml-data ind i en asp/html-fil (Se koden nedenfor). Dette kan jeg nøjes med.
Det nye problem er at xml-filen "test_data_0A63C835DD924BE196BC86D15CBB202F.xml" ændrer sig.

"test_data" er statisk, men de efterfølgende tegn er forskelige, men der er kun én xml-fil af gangen. Er det forståeligt?

Hvis en kan fortælle hvordan jeg henter filen "test_data_forskellige_tegn.xml" så er der stadigvæk point.

<%
Option Explicit
Response.Buffer = True

Dim xml
    Set xml = Server.CreateObject("Microsoft.XMLDOM")
    xml.async = False
    xml.load (Server.MapPath("test_data_0A63C835DD924BE196BC86D15CBB202F.xml"))

Dim title, heading, paragraph, testHTML
    Fornavn = xml.documentElement.childNodes(0).text
    Efternavn = xml.documentElement.childNodes(1).text
    Adresse = xml.documentElement.childNodes(2).text
    Postnr = xml.documentElement.childNodes(3).text
    By = xml.documentElement.childNodes(4).text

    Set xml = Nothing
%>
<html>
<head>
    <title></title>
</head>
<body>
<h3 align="center"><%= fornavn %> <%= efternavn %></h3>
<p align="center"><% = adresse %></p>
<div align="center"><%= postnr %><%= by %></div>
</body>
</html>
Avatar billede eagleeye Praktikant
05. september 2003 - 12:27 #6
Man kan ikke give vild-chars i den del som åbner filen. men hvis der kune er den XML fil og den hedder test_data_XXXX.xml kan man lave noget som dette:
<%
'Finder en xml
dim sti,fso,folder,files
sti = server.MapPath(".")
Set fso = createobject("scripting.filesystemobject")
Set folder = fs.getfolder(sti)
Set files = folder.files
for each file in files
  if LCase(fso.GetExtensionName(file.name)) = "xml" and inStr(1,Lcase(file.name), "test_data_") > 0 then
    filnavn = file.name
    exit for
  end if
next

Dim xml
    Set xml = Server.CreateObject("Microsoft.XMLDOM")
    xml.async = False
    xml.load (Server.MapPath(filnavn))

...resten
Avatar billede bennetsen Nybegynder
05. september 2003 - 23:19 #7
Det virker ikke helt, men da det nu mere handler om at åbne den rigtige fil end om xml får du dine point.
Jeg vil så åbne et nyt spørgsmål
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