Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Parsen langer XML-Dateien mit dem Simple API for XML (SAX)
zurück: TIPP: Scannen via Twain - mit Acrobat Pro weiter: Email mit Signatur erstellen Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Tutorial Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Nouba
nicht ganz unwissend :)


Verfasst am:
31. März 2010, 23:01
Rufname:
Wohnort: Berlin

Parsen langer XML-Dateien mit dem Simple API for XML (SAX) - Parsen langer XML-Dateien mit dem Simple API for XML (SAX)

Nach oben
       Version: Office 2k (2000)

Hallo,

hier findet ihr ein Beispiel, das relativ große XML-Daten (€-Kurs-Daten der europäischen Zentralbank - beinhaltet ca. 88000 Datensätze in der kompletten Version) mittels SAX-Parser einliest. Bei einem SAX-Parser werden eigens geschriebene Rückruffunktionen implementiert und bei Eintreten bestimmter Ereignisse aufgerufen. Standardmäßig finden sich in allen SAX-Parsern folgende Funktionen mehrere Handler, die verschiedene Funktionen implementieren.

Wichtigster Handler ist der ContentHandler. Dieser beinhaltet in der Regel folgende Funktionen: OnStartDocument, OnEndDocument, OnStartElement, OnEndElement, OnCharacter, OnStartPrefixMapping, OnEndPrefixMapping, OnIgnoreWhiteSpace, OnProcessingInstruction, OnSetDocumentLocator, OnSkipedEntity.

Danach kommt der ErrorHandler als zweitwichtigste Komponente ins Spiel. Hier werden folgende Rückruffunktionen implementiert: OnError, OnFatalError, OnWarning.

Dann gibt es einen DeclHandler für DCL-Deklarationen mit diesen Funktionen: OnAttributeDecl, OnElementDecl, OnExternalEntityDecl, OnInternalEntityDecl.

Dann gibt es einen DTD-Handler mit den Funktionen: OnNotationDecl, OnUnparsedEntity.

Zu nennen sei auch ein LexicalHandler mit Funktionen: OnComment, OnStartData, OnEndData, OnStartDTD, OnEndDTD, OnStartEntity, OnEndEntity.

Oft findet man auch einen Resolver mit diesen Funktionen: OnGetExternalSubset, OnResolveEntity.

Die Namen der genannten Rückruffunktionen weichen je nach Implementierung in der einen oder anderen Programmiersprache geringfügig voneinander ab. SAX, zuerst in Java programmiert, steht quasi in allen modernen Programmiersprachen heute zur Verfügung und so wundert es auch nicht, dass Microsoft ab der Microsoft XML, V3.0 Bibliothek diese Schnittstelle für uns VBAler zur Verfügung stellt. Uns wird hier die Implementierung über verschiedene VB-Schnittstellen angeboten. Der Contenthandler wird über Implements IVBSAXContentHandler im Klassenmodul-Kopf eingebunden. Wichtig ist dabei, dass alle Methoden der Implementierung in die VBA-Klasse eingebunden werden müssen - auch wenn sie nicht im Programm verwendet werden. Weiterhin benutze ich im Beispiel noch die Implementierung von IVBSAXErrorHandler. Die Implementierungen: IVBSAXAttributes, IVBSAXDeclHandler
, IVBSAXDTDHandler, IVBSAXEntityResolver, IVBSAXLexicalHandler, IVBSAXLocator
und IVBSAXXMLFilter finden im Beispiel keine Verwendung. Wer sich eingehender mit SAX und VB(A) beschäftigen will, der sollte das Microsoft XML 4.0 Parser-SDK herunterladen, das eine Referenz für die SAX Microsoft-Implementierung und zahlreiche Beispiele für VB (quasi 1 zu 1 auf VBA übertragbar) und C++ enthält. Weiterhin wird darin natürlich auch das DOM (Document Object Model) und auch das SOM (Schema Object Model) behandelt - die Inhalte sind allerdings in englischer Sprache.

Noch eine Anmerkung zum Beispiel: Ich habe dummerweise ein Feld in der Tabelle RATE benannt (wie es auch in der XML-Datei heißt), was allerdings der englischen Form der Zins-Funktion entspricht. In Abfragen muss deshalb der Name immer eckig geklammert werden. Entwickelt wurde die DB unter Access 2007 - ich hoffe, dass es keine Probleme in anderen Versionen gibt.

... so, und nun viel Spass beim Importieren der Euro-Kurse ab 1999. Die täglich aktuellen Kurse lassen sich vielleicht auch sonst noch nützlich verwerten.

Grüsse Nouba



ECBRates.zip
 Beschreibung:

Download
 Dateiname:  ECBRates.zip
 Dateigröße:  43.96 KB
 Heruntergeladen:  259 mal

Willi Wipp
Moderator


Verfasst am:
30. Apr 2010, 03:00
Rufname:
Wohnort: Raum Wiesbaden


Re: Parsen langer XML-Dateien mit dem Simple API for XML (SA - Re: Parsen langer XML-Dateien mit dem Simple API for XML (SA

Nach oben
       Version: Office 2k (2000)

{Dieser Beitrag nimmt das Thema aus den unbeantworteten Themen heraus}
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Langer Text/Memo-Feld zeigt nur 254 Zeichen an 10 anna 1910 238 18. Sep 2013, 12:32
Marmeladenglas Langer Text/Memo-Feld zeigt nur 254 Zeichen an
Keine neuen Beiträge Access Tabellen & Abfragen: XML Schema und .txt input 1 mooowe 202 10. Aug 2012, 14:04
steffen0815 XML Schema und .txt input
Keine neuen Beiträge Access Formulare: Pfad zu einer Pdf Datei mit API im Formularfeld auswählen 5 esteban 923 13. Apr 2011, 11:53
derArb Pfad zu einer Pdf Datei mit API im Formularfeld auswählen
Keine neuen Beiträge Access Formulare: Auswählen aus langer Liste durch Kombinationsfeld? 4 max_pla3 189 06. März 2011, 14:54
max_pla3 Auswählen aus langer Liste durch Kombinationsfeld?
Keine neuen Beiträge Access Tabellen & Abfragen: How to "flip" ROWS and COLUMNS in my simple MS ACC 2 access beginer 394 25. Nov 2010, 18:31
Gast How to "flip" ROWS and COLUMNS in my simple MS ACC
Keine neuen Beiträge Access Tabellen & Abfragen: XML- importieren 4 christianseiler 1521 07. Jun 2010, 17:47
christianseiler XML- importieren
Keine neuen Beiträge Access Berichte: Verschieden langer Subreport 2 tannerma 300 28. Mai 2009, 21:14
tannerma Verschieden langer Subreport
Keine neuen Beiträge Access Tabellen & Abfragen: Simple Abfrage...macht "." Probleme? 8 SusanH 292 12. Jan 2009, 21:46
jens05 Simple Abfrage...macht "." Probleme?
Keine neuen Beiträge Access Formulare: Formulare öffnen -> manchmal mit langer Ladezeit 8 Lemming1 610 08. Aug 2008, 07:49
Lemming1 Formulare öffnen -> manchmal mit langer Ladezeit
Keine neuen Beiträge Access Berichte: Langer Bericht 3 Salvamea 501 16. Jul 2008, 16:37
KlausMz Langer Bericht
Keine neuen Beiträge Access Programmierung / VBA: mit access auf Word API zugreifen 1 r3dl1n3 391 18. Jun 2008, 20:14
rita2008 mit access auf Word API zugreifen
Keine neuen Beiträge Access Programmierung / VBA: XML importieren 0 Basler 403 16. Jun 2008, 14:22
Basler XML importieren
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML Forum