Kapitel 12: XML in Theorie und Praxis
Suchen von Datensätzen
Noch augenfälliger wird der Vergleich beim Suchen in den jeweiligen Datenmengen. Soll beispielsweise der
Datensatz mit der Bankleitzahl »87069076« gesucht werden, ergeben sich folgende Änderungen in den je-
weiligen Testprogrammen mit den zugehörigen Zeiten:
DOM-Programm ADO-Programm
Sub testen_XML()
...
xmlDoc.Set node = xmlDoc.selectSingleNode
("//BLZ[textnode() = '87069076']")
Debug.Print node.parentNode.childNodes(1).Text
...
End Sub
Sub testen_ADO()
...
rs.Open "SELECT * FROM Bankleitzahlen WHERE BLZ = 87069076",
CurrentProject.Connection, adOpenKeyset
Debug.Print rs.Fields("Bank").Value
...
End Sub
Zeit: 0,481 Sekunden Zeit: 0,008 Sekunden
Tabelle 12.17 Vergleich DOM- und ADO-Datenzugriff (Suchen)
Die offensichtlichen Performance-Unterschiede dürften Grund genug sein, XML nicht unbedingt als Ersatz
für die bisherigen Datenbanken anzusehen, sondern als das, was es ist: ein universelles Austauschformat
zwischen verschiedenen Anwendungen und Plattformen, das mit seiner flexiblen Struktur auch anspruchs-
volle Lösungen bieten kann.
Praxisbeispiele
Speichern im UTF-8-/UTF-16-Format
XML-Datei; DOMDocument-Objekt; CreateProcessingInstruction-, CreateElement,- Save-Methode;
Je nach System und Anwendung möchten Sie eine Datei im UTF-8- oder im UTF-16-Format sichern.
Einfluss auf das Format nehmen Sie mit den Processing-Instructions. Geben Sie diese bei Verwendung der
DOM-Objekte an, werden sie auch für das Speichern verwendet. Andernfalls wird automatisch im UTF-8
-Format gespeichert.
Oberfläche
Auf ein Formular verzichten wir, da es um die reine Dateiausgabe geht.
Quelltext
Fügen Sie in ein Modul den folgenden Code ein:
Private Sub Speichern_UTF8()
Dim doc As MSXML2.DOMDocument
Dim root As MSXML2.IXMLDOMElement
Dim element As MSXML2.IXMLDOMElement
808
HINWEIS
HINWEIS
Zunächst erzeugen wir ein neues XML-Dokument:
Set doc = New MSXML2.DOMDocument
Anschließend fügen wir die Processing Instruction mit der Format-Angabe ein:
doc.appendChild doc.createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'")
Schnell noch ein paar Daten einfügen:
Set root = doc.createElement("Personal")
doc.appendChild root
Set element = root.appendChild(doc.createElement("Mitarbeiter"))
element.setAttribute "Nachname", "Müller"
element.setAttribute "Vorname", "Udo"
Datei speichern:
doc.Save CurrentProject.Path & "\" & "test_UTF-8.xml"
End Sub
Geben Sie keine Processing Instruction an, wird automatisch im UTF-8-Format gespeichert.
Alternativ UTF-16-Format:
Private Sub Speichern_UTF16()
Dim doc As MSXML2.DOMDocument
Dim root As MSXML2.IXMLDOMElement
Dim element As MSXML2.IXMLDOMElement
Set doc = New MSXML2.DOMDocument
doc.appendChild doc.createProcessingInstruction("xml", "version='1.0' encoding='UTF-16'")
...
doc.Save CurrentProject.Path & "\" & "test_UTF-16.xml"
End Sub
Vergessen Sie nicht die »Microsoft XML«-Library einzubinden!
Test
Nach dem Ausführen der obigen Routinen können Sie die Dateien im Internet-Explorer oder einem Hex-
Editor betrachten:
Abbildung 12.56 UTF-8-Kodierung im Hex-Editor (keine BOM)
809
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.