Office: (Office 2003) xml

Helfe beim Thema xml in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe eine gpx-Datei vorliegen. Auszug: <trk> <name>26.03.</name> <extensions> <gpxx:TrackExtension>... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Marsu65, 21. April 2012.

  1. xml


    Hallo zusammen,

    ich habe eine gpx-Datei vorliegen. Auszug:

    PHP:
             <trk>
    <
    name>26.03.</name>
    <
    extensions>
    <
    gpxx:TrackExtension>
    <
    gpxx:DisplayColor>DarkGray</gpxx:DisplayColor>
    </
    gpxx:TrackExtension>
    </
    extensions>
    <
    trkseg>
    <
    trkpt lat="47.131403982639313" lon="10.083361035212874">
    <
    ele>1013.624</ele>
    <
    time>2012-03-26T06:35:03Z</time>
    </
    trkpt>
    <
    trkpt lat="47.131412029266357" lon="10.083732018247247">
    <
    ele>1014.593</ele>
    <
    time>2012-03-26T06:35:07Z</time>
    </
    trkpt>
    :)
     
    Marsu65, 21. April 2012
    #1
  2. Den Beitrag finde ich jetzt nicht, aber ein kleines Beispiel zum Import von XML.
     
  3. Hallo Axel!

    Hast du ein AiU Abo? Dort könntest du mal nach xml suchen. Da habe ich was gefunden.

    Grüße
    Ingo
     
    Claypool, 23. April 2012
    #3
  4. xml

    \@Eberhard
    Danke für das Beispiel.
    Das sah auf den ersten Blick ja ganz simpel aus.
    Es wurden auch Tabellen erstellt.
    Leider fehlen in der Tabelle trkpt (Trackpoints) die lat und lon-Werte.
    ele und time-Tags werden als Felder angelegt und gefüllt.
    Ich gehe davon aus, dass das bei lat und lon nicht funktioniert, liegt daran, dass die Werte im Tag selbst stehen?!?

    Muss ich nun das ganze doch stringmäßig auseinanderfummeln?
    Das wäre zwar 'ne gute Gelegenheit sich in RegEx einzuarbeiten, aber für einen Freundschaftsdienst ist mir der Aufwand doch etwas hoch.

    @Ingo
    Leider nein, der Preis für´s Abo entspricht nicht meiner momentanen persönlichen Konjunkturlage *wink.gif*
    [Edit]
    Aber wenn du diesen hier meinst, der ist sogar frei:
    http://www.access-im-unternehmen.de/179.0.html
    [/Edit]

    Grundsatzfrage, weil ich mich wenig mit xml beschäftigt habe:
    Gibt es das überhaupt im xml-Format, dass die Werte im Tag stehen oder muss ich mich eher nach html-Importmöglichkeiten umsehen (wo das ja durchaus Usus ist)?
     
    Marsu65, 23. April 2012
    #4
  5. Anwenden von RegEx ist weniger schlimm.

    Ein Satz "Koordinaten, Höhenangabe und Zeitangabe" ist immer komplett enthalten und wiederholt sich sinngemäß?
     
  6. schreibt man, wenn man sich schon intensiv damit beschäftigt hat.
    zu Risiken und Nebenwirkungen fragen Sie ... *wink.gif*
    Der Aufbau ist wie im Auszug gezeigt
    Code:
    Wenn du ein wenig spielen willst, schicke ich dir gerne auch die Original-gpx.
    Ansonsten werde ich das wohl, wie im AiU-Artikel, über das XMLDocument-Object-Model (DOM) lösen.
    Hier komme ich über getAttribute an die lat und lon-Werte.

    Ich denke (unwissend) aber auch, dass es mit Hilfe des DOM weniger Aufwand ist, als den kompletten String zu zerlegen und mit RegEx auszuwerten?!?

    PS: gut auf diesem Wege mal die XMLImport und ExportXML-Methoden kennengelernt zu haben. Kann man bestimmt noch mal gebrauchen, wo die Umwelt zunehmend xml-liger wird.
     
    Marsu65, 23. April 2012
    #6
  7. Probiere mal, ob Du mit diesem simpel gestrickten Ansatz weiterkommst.
    Code:
     
  8. xml

    Hab mir gedacht, dass du schon fleissig ein Bsp. gestrickt hast.
    Werde ich mir aber erst im Laufe des Tages zu Gemüte führen.

    Danke dir jetzt schon mal recht herzlich. *hands
     
    Marsu65, 23. April 2012
    #8
  9. Hallo Axel!

    Nicht ganz. Das habe auch gesehen und könnte helfen. Das, was ich meine findest du hier.
    Vielleicht bist du ja nach dem Testzugang für eine Woche überzeugt ;-)

    Grüße
    Ingo
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Claypool, 24. April 2012
    #9
  10. \@ Ingo
    Na, der Codeschnipsel hätte mich nicht viel weitergebracht *wink.gif*
    Überzeugt, dass es sinnvoll wäre, bin ich schon ... sind einige interessante Sachen zu finden.
    Immerhin hast du mich auf die richtige Fährte geführt.

    @All
    Habe es nun, wie schon oben angedeutet, über das DOM gelöst.

    Eberhards Bsp. (Dank dafür) habe ich mir auch angesehen.
    Den Suchstring habe ich, ehrlich gesagt, immer noch nicht komplett verstanden.

    Hauptsächlich habe ich aber Abstand von der RegEx-Lösung genommen, da in der gpx Datei mehrere Tracks vorhanden sind.
    D.h. es müssen zwei Tabellen gefüllt werden
    tbl_Tracks (Id | Trackname)
    tbl_Trackpoints (Id | Track_FK | LAT | LON | ELE | Datetime)

    Und wie ich zu den einzelnen Trackpoints den Track_FK über RegEX herausfinden bzw. beibehalten kann, ist mir unklar.

    Für diejenigen, die mal das selbe Problem haben ein wenig Code:
    Code:
    Geht vlt. auch eleganter.

    Wie immer, ein großer Dank an alle Beteiligten!

    PS: Und als Anhang noch die stark verkürzte Original gpx.
     
    Marsu65, 24. April 2012
    #10
  11. Hallo!

    Es könnte überschaubarer (lesbarer) werden, wenn du die Verschachtelung der For-Schleifen in Prozeduren auslagerst.
    .. Einfach eine Prozedur zum Lesen der Tracks, eine für die TrackPoints, eine zum Schreiben der Daten usw.
    Eine weitere Stufe wäre dann der Einsatz von Klassen ... eine Klasse für einen Track, eine für einen TrackPoint usw. => Man könnte dann mit For-Each die aufbereiteten Daten durchlaufen.

    Falls Interesse besteht, könnten wir gemeinsam ein Refactoring des Codes durchführen.

    [OT]
    Ich glaub, das wäre ein schönes Beispiel für die Auslagerung von Aufgaben in eine .NET-dll um sie dann in Access zu nutzen. *wink.gif*

    mfg
    Josef
     
    Josef P., 24. April 2012
    #11
  12. Hallo Josef,
    bzgl. der prozeduralen Aufteilung kann man argumentieren, dass einzelne Prozeduren übersichtlicher sind.
    Ich hatte das auch kurz überlegt, doch in diesem Fall halte ich die eine Prozedur für kompakter und übersichtlicher, da sie gleichzeitig die Struktur des XML abbildet und man Code und Dokument qusi nebeneinanderhalten kann.
    Aber wie ich dich kenne, fallen dir bestimmt noch ein paar Gegenargumente ein. *wink.gif*
    In diesem Fall sollte es auch nur schnell gehen, funktionieren und kam nicht auf Schönheit an *biggrin.gif*

    Die Abbildung in Klassen halte ich in so konkreter Form wg. der Abhängigkeiten der Nodes und der Wiederverwendbarkeit für problematisch.
    Ich würde da eher an allgemein verwendbare Strukturklassen denken.
     
    Marsu65, 24. April 2012
    #12
  13. xml

    Hallo!

    So etwas lese ich häufiger - ich erkenne die Übersicht nur nicht. *wink.gif*
    Wenn beispielsweise die Prozedur aus Beitrag #10 nicht exakt das macht, was gewünscht ist, weil ein Logikfehler enthalten ist, muss ich mir die gesamte Prozedur durchsehen bzw. die gesamte Prozedur testen, auch wenn ich z. B. weiß, dass der Fehler beim Auslesen der Tracking-Punkte entsteht. Oder siehst du auf den ersten Blick, wo das passiert? .. Vermutlich nicht, sonst hättest du die Kommentare nicht benötigt. *biggrin.gif*

    Ein Zeichen, das die Proezdur doch nicht so übersichtlich ist, sind für mich die Kommentare bei den End-Ifs und Next. Es sieht so aus, als hättest du die Übersicht verloren, welches End-If bzw. Next wohin gehört. *wink.gif*

    Zum Vergleich ein erster Anlauf einer Aufteilung:
    Code:
    Wie meinst du das?

    Eine Klassenstruktur könnte die XSD-Beschreibung abbilden und somit einen "gesicherten" Zugriff auf die Elemente liefern.
    Ich würde allerdings diese Struktur nicht in VBA sondern in .NET umsetzen, da das relativ viele Klassen sind. Außerdem kann man mit xsd.exe die Klassen zu Beschreibung der GPX.xsd automatisiert erzeugen lassen. Man muss dann nur noch das Einlesen und Abspeichern dazu programmieren.
    ... dieser Aufwand macht meiner Ansicht nach aber erst Sinn, wenn man mehr als nur einen Import in 2 Tabellen durchführen will.
    Im Prinzip stelle ich mir einen Zugriff analog DOMDocument & Co. vor - allerdings mit speziellen Membern für die GPX-Elemente.

    Beispiel:
    Statt
    Code:
    schreib man dann
    Code:
    /edit:
    Das lasse ich so nicht gelten. *biggrin.gif*
    Wenn du nämlich von Anfang an schon mehreren Prozeduren je Aufgabe verwendest (in Teilaufgaben denkst), bist du vielleicht sogar schneller, da du kleineren Code erhältst, den du von unten nach oben testen kannst.
    Bei einer einzigen Prozedur muss zuerst alles fertig sein, bevor man die Funktionsfähigkeit prüfen kann.

    mfg
    Josef
     
    Josef P., 24. April 2012
    #13
  14. Nur am Rande:
    Man könnte den Gesamttext per Split (Delimiter "< trk >") in Teiltexte zerlegen und diese nacheinander dann genau so zzgl. Erfassung Trackname analysieren.

    Allerdings kümmert sich eine RegEx-Suche nicht wirklich um Strukturen des GPX-Dokumentes, sondern ermittelt gemäß des vorgegebenen Suchmusters hart an den Daten. Damit wäre man (weitgehend) auf eine korrekte Struktur des Dokumentes angewiesen, während eine XML-Analyse Strukturen berücksichtigt und somit robuster hinsichtlich fehlerhafter GPX-Dokumente arbeiten wird.

    Dengegenüber ist das Arbeiten direkt an Daten mit Nichberücksichtigung der Strukturen recht schlank und lässt eine hohe Abarbeitungsgeschwindigkeit erwarten.

    Das kann ich aus meiner Sicht unterstreichen. Im Vorschlag #7 habe ich nur die Prozedur Import neu geschrieben (den Rest kopiert), und diese Prozedur besteht nur aus Eingabeparametern (Suchmuster) und aus der Ausgabe.
    Sofern einem diese Dinge klar sind, lässt sich die Lösung in Minuten erstellen.
     
  15. \@Josef
    Die Kommentare im Code sind nicht für mich. Ich habe sie für das Forum nachträglich eingefügt.
    In diesem Fall war das Kopieren und Ändern der Vorlage von AiU schneller als das Neuschreiben einzelner Prozeduren und Funktionen. *wink.gif*
    War in diesem Fall nicht schwer *wink.gif*

    @Eberhard
    So würde es gehen.
     
    Marsu65, 25. April 2012
    #15
Thema:

xml

Die Seite wird geladen...
  1. xml - Similar Threads - xml

  2. MS Office 2021

    in Microsoft Outlook Hilfe
    MS Office 2021: Hallo, ich möchte alle .xml Anhänge in einem Ordner automatisch speichern mit einem Skript. Habe aber keine Ahnung wie das geht. Kann mir bitte jamand halfen?
  3. Fehlermeldung XML Erweiterungspacket

    in Microsoft Word Hilfe
    Fehlermeldung XML Erweiterungspacket: Hallo, kennt wer diese Fehlermeldung bei Word (Windows 10 pro/Word 2016)? Es tritt auf, wenn ich auf die Registerkarte Ansicht gehe und geht nicht mehr weg. Word stellt dann im Hintergrund eine...
  4. nach speichern als XML-Kalkulationstabelle zu viele Nachkommastellen

    in Microsoft Excel Hilfe
    nach speichern als XML-Kalkulationstabelle zu viele Nachkommastellen: Hallo Zusammen, Excel speichert eine Kommazahl, in meinem Fall z.B. 40,123 nach "Speichern unter XML-Kalkulationstabelle 2003" als 40.122999999999998 (Datei mit Texteditor öffnen). Jetzt habe ich...
  5. Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen

    in Microsoft Access Hilfe
    Primärschlüssel/Fremdschlüssel aus 2.Tabelle automatisch einfügen: Hallo zusammen, ich stehe gerade vor dem Problem, dass ich die Datensätze zwischen zwei Tabellen nicht verknüpfen kann. Konkret habe ich die beiden Tabellen tblEigenschaft und tblBasis. In der...
  6. Import von XML-Dateien in Access

    in Microsoft Access Hilfe
    Import von XML-Dateien in Access: Hallo zusammen, ich möchte eine Menge von XML-Dateien in Access 2016 importieren und verwende dazu die Importfunktion für XML-Dateien unter Externe Daten im Menü. Die Dateien enthalten einige 100...
  7. Meldung "öffnen sie nur anlagen von absendern denen sie vertrauen "

    in Microsoft Outlook Hilfe
    Meldung "öffnen sie nur anlagen von absendern denen sie vertrauen ": Hallo zusammen, kann mir jemand sagen, wie ich diese eigentlich lästige Abrage, ob ich die Datei öffnen oder speichern möchte wieder AKTIVIEREN kann? [ATTACH] Grund: Ich vermute, sie...
  8. Eigenes Ribbon anpassen -> XML

    in Microsoft PowerPoint Hilfe
    Eigenes Ribbon anpassen -> XML: Hallo zusammen, ich habe ein Ribbon welches ich viel nutze bin aber etwas unzufrieden mit der automatischen Skalierung der Knöpfe. Ich würde es daher gerne fest definieren und habe gelesen,...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden