Kapitel 12: XML in Theorie und Praxis
XML-Daten asynchron verarbeiten
XML; MS-DOM, Async-Eigenschaft; WithEvents-Deklaration; OnDataAvailable-, OnReadyStateChange-
Ereignis;
Haben Sie ein etwas größeres XML-Dokument zu verarbeiten, ist es häufig günstig, dem Anwender eine
optische Rückmeldung über den Verarbeitungsstand zu geben. Sei es, dass Sie einen Fortschrittsbalken ein-
blenden oder dass Sie diverse Menüoptionen während der Verarbeitung sperren wollen.
Das MS-DOM unterstützt Sie in diesem Fall mit den zwei Ereignissen
OnDataAvailable und
OnReadyStateChange.
Laden Sie ein neues XML-Dokument, treten die Ereignisse in bestimmter Reihenfolge auf:
OnReadyStateChange (ReadyState = 1 = Loading)
OnReadyStateChange (ReadyState = 2 = Loaded)
OnReadyStateChange (ReadyState = 3 = Interactive)
OnDataAvailable
OnReadyStateChange (ReadyState = 4= Completed)
Die folgende Tabelle gibt Aufschluss über die jeweiligen Änderungen:
ReadyState Bemerkung
1 Laden der Daten und Lesen der persistenten Eigenschaften.
2 Die Daten sind geladen und werden geparst. Das Objektmodell ist noch nicht verfügbar.
3 Einige Daten wurden bereits geparst, das Objektmodell ist für diese Daten verfügbar, jedoch noch schreibgeschützt.
4 Die Daten wurden vollständig verarbeitet. Ob das Verarbeiten erfolgreich war oder nicht, kann über den ErrorCode abge-
fragt werden.
Tabelle 12.18 Werte von ReadyState
Unser kleines Beispielprogramm soll Ihnen die Verwendung der Ereignisse demonstrieren.
Oberfläche
Lediglich ein kleines Formular mit einem Listenfeld und einer Befehlsschaltfläche (siehe Laufzeitansicht).
Quelltext
Binden Sie zunächst die Library Microsoft XML, v6.0, über den Menübefehl Extras/Verweise... ein. Da wir
nicht nur auf die Eigenschaften und Methoden des DOMDocument-Objektes zugreifen wollen, müssen wir
die Option WithEvents bei der Deklaration der Objektvariablen mit angeben:
Option Explicit
Option Compare Database
Dim WithEvents xmlDoc As DOMDocument30
812

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.