Kapitel 12: XML in Theorie und Praxis
Strukturierte Textdaten in XML-Dokumente umwandeln
Viele ältere Programme bieten einen Exportfunktion im Text- bzw. CSV-Format, bei dem die Daten in
reinen Textdateien mit definierten Trennzeichen bzw. festen Spaltenbreiten gesichert werden. Jeder Daten-
satz wird in einer eigenen Zeile abgelegt.
Abbildung 12.67 Beispiel für eine derartige Textdatei (Trennzeichen = Semikolon)
Wir wollen eine Routine entwickeln, mit der diese Daten geladen und automatisch in einer selbstbeschrei-
benden XML-Datei gesichert werden.
Quelltext
Zunächst zwei Hilfsfunktionen, die den Pfad und den Namen einer Datei aus der kompletten Pfadangabe
extrahieren:
Private Function GetPath(ByVal filename As String) As String
Dim i As Integer
For i = Len(filename) To 1 Step -1
If Mid$(filename, i, 1) = "\" Then
GetPath = Left$(filename, i)
Exit For
End If
Next
End Function
Private Function GetFileName(ByVal filename As String) As String
Dim i As Integer
For i = Len(filename) To 1 Step -1
If Mid$(filename, i, 1) = "\" Then
GetFilename = Right$(filename, Len(filename) – i)
Exit For
End If
Next
End Function
Hier die eigentliche Konvertierungsfunktion:
Sub Convert_TXT_XML(sTXT As String, sXML As String)
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
822
Eine ADO-Connection erstellen, um die Textdatei einzulesen:
Set conn = New ADODB.Connection
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & GetPath(sTXT) & ";" & _
"Extended Properties='text'"
Ein Recordset erzeugen und Einlesen der Daten aus der Textdatei:
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM [" & GetFilename(sTXT) & "]", conn, adOpenStatic, adLockReadOnly, adCmdText
Eventuell vorhandene Ausgabedatei löschen:
On Error Resume Next
Kill sXML
Speichern der Recordsetdaten im XML-Format:
rs.Save sXML, adPersistXML
rs.Close
Set rs = Nothing
Set conn = Nothing
End Sub
Test
Zum Testen können Sie die folgende Routine verwenden:
Sub Testen_Convert_TXT_XML()
Convert_TXT_XML CurrentProject.Path & "\tblPersonal.txt", CurrentProject.Path & _
"\XML_tblPersonal.xml"
End Sub
Abbildung 12.68 Die erzeugten XML-Daten
823
Praxisbeispiele

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.