Office: (Office 2010) XML Datei einlesen

Helfe beim Thema XML Datei einlesen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Leider hat Access ja keinen Assistenten für das Einlesen von XML Dateien. Oder habe ich etwas übersehen? Ich stehe vor folgendem Problem: die XML... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von hcscherzer, 6. August 2012.

  1. XML Datei einlesen


    Leider hat Access ja keinen Assistenten für das Einlesen von XML Dateien.
    Oder habe ich etwas übersehen?

    Ich stehe vor folgendem Problem:
    die XML Datei ist so aufgebaut, das einige Felder direkt mit den Feldnamen getagt sind (kundenname und id) und andere eine Feldbeschreibung enthalten, hier mal ein Satz auszugsweise zur Probe:
    PHP:
             <kunden>
    <
    id>27242</id>
    <
    kundenname>Müller GmbH</kundenname>
    <
    field name="strasse" type="text">Konsul-Smidt-Weg</field>
    <
    field name="hausnummer" type="text">2</field>
    <
    field name="plz" type="text">27574</field>
    <
    field name="ort" type="text">Bremerhaven</field>
    </
    kunden>
    :)
     
    hcscherzer, 6. August 2012
    #1
  2. Das XML-Beispiel kommt verstümmelt an... Vermutlich ein Tag-Problem...

    Zum XML-Import gibts aber noch die Alternative via DOM-Modell... die ist aber VBA-basiert.
     
    Atrus2711, 8. August 2012
    #2
  3. Jetzt nicht mehr. *biggrin.gif*
     
    hcscherzer, 8. August 2012
    #3
  4. XML Datei einlesen

    Na dann vertief dich mal in XML per VBA. Das Suchstichwort dafür ist MSXML2.DOMDocument. Evtl. auch mit höheren XML-Versionen... *Smilie

    Bin auch nicht so der Crack mit XML, aber hier im Forum gabs schon ganz gute Beiträge dazu.
     
    Atrus2711, 8. August 2012
    #4
  5. Hallo Hans-Christian,

    wenn das eine wiederkehrende Aufgabe ist und die Struktur
    auf absehbare Zeit gleich bleibt, würde ich eine kleine Funktion per
    DOM erstellen.
    Du kannst zwar xml direkt importieren, jedoch scheitert es in diesem Fall tatsächlich an den Attributen (Feldname/Feldtyp).
    Die kennt der Access Import-Assi nicht.

    Ich habe mal angefangen einen XML-Praser zu schreiben.
    Wenn du noch ein vierteljährchen Zeit hast ... *wink.gif*
    (Tabellen erstellen inkl. Daten einlesen funktioniert schon in einfacher Form.
    Das Einlesen ohne Tabellenerstellung ist noch in Entwicklung.)

    PS: wenn du gar nicht zurecht kommst, melde dich!
     
    Marsu65, 8. August 2012
    #5
  6. Hallo Hans Christian,
    eine Alternative könnte sein, die Datei vor dem Einlesen zu korrigieren. Ich könnte mit vorstellen, dass man da mit einer Regular Expression schnell gute Ergebnisse erzielen kann.

    CU
     
    Thomas Möller, 8. August 2012
    #6
  7. Da Olympia gerade nichts spannendes zu bieten hat *wink.gif*
    Code:
     
    Marsu65, 8. August 2012
    #7
  8. XML Datei einlesen

    Hallo zusammen und einen guten Morgen.

    Danke für die Anregungen schon mal.
    @Thomas: da hatte ich auch zuerst drüber nachgedacht ...
    Code:
    @Marsu: das ist ein interessanter Ansatz mit dem XML Parser.
    Ein Vierteljahr werde ich aber nicht drauf warten können *wink.gif*

    Ich hoffe, ich komme heute dazu, beides mal anzugehen und auszuprobieren.
     
    hcscherzer, 8. August 2012
    #8
  9. \@hcscherzer:
    Marsus Code liest deine Datei ein und gibt dir Zugriff auf die Daten. Das war doch dein Ziel? Ein Parser, im Sinne von "da und dort ist die Datei nicht wohlgeformt", war doch gar nicht erwünscht?
     
    Atrus2711, 8. August 2012
    #9
  10. Die RegEx-Reparatur der XML-Datei könnte etwa so aussehen:
    Code:
    PHP:
             Public Function ChangeXML(ByVal Content As String) As String
    ChangeXML 
    RegExReplace(Content_
    "<field name=" Chr(34) & "([a-z]+)" Chr(34) & " type=" Chr(34) & _
    "text" Chr(34) & ">([A-Za-z0-9 -]+)</field>"_
    "<$1>$2</$1>")
    End Function
     
  11. \@Martin: ich hatte genau das unter "Parser" verstanden, Daten einlesen.
    Siehe auch hier.

    @Eberhard: auch Dir danke für Deine Function. Ich werde wohl erst morgen dazu kommen, mich mit dem Thema intensiver zu beschäftigen. Heute ist hier zu viel los ... nicht nur Olympia *wink.gif*
     
    hcscherzer, 9. August 2012
    #11
  12. Den Begriff Parser hatte ich gewählt, weil es u.a. möglich sein wird XML-Strukturen in Tabellenstrukturen mit ref.Int zu transferieren.
    Den "einfachen" Teil der Datenübernahme in bestehende Tabellenstrukturen habe ich bisher ausgespart. *wink.gif*

    Bei den oben gezeigten Beispieldaten gehe ich davon aus, dass es jeweils ein Datensatz ist, der komplett in einer Tabelle landen soll.
    Damit wäre die kleine Funktion aus #7 imho ausreichend.
     
    Marsu65, 9. August 2012
    #12
  13. XML Datei einlesen

    \@Marsu65: Könnte man eigentlich in deiner For Each-Schleife aus dem xKunde-Objekt eine Collection aller field-Elemente abfragen, welche man dann wieder mit For Each durchlaufen kann?
     
    stendate, 9. August 2012
    #13
  14. Hi Sten,
    xKunde ist ein Node, der wiederum Childnodes (Aufzählung als Nodelist-Collection) und/oder Attributes (Attributes-Collection)haben kann.
    Nodelists gezielt nach nach Childnodes mit einem bestimmten Tagname (in dem Fall "field"-Elemente als Unterknoten) zu suchen geht über die selectNodes-Methode der Nodes:

    Code:
    bzw. mit For Each ...
    Code:
     
    Marsu65, 9. August 2012
    #14
  15. \@Marsu65:

    Besten Dank, ich war beim ausprobieren irgendwie auf getElementsByTagName fixiert und hab das selectNodes komplett übersehen.... *Smilie

    Code:
     
    stendate, 9. August 2012
    #15
Thema:

XML Datei einlesen

Die Seite wird geladen...
  1. XML Datei einlesen - Similar Threads - XML Datei einlesen

  2. 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...
  3. Was geht verloren, wenn ich die Arbeitsmappe als eine XML-Kalkulationstabelle 2003-Datei ...

    in Microsoft Excel Tutorials
    Was geht verloren, wenn ich die Arbeitsmappe als eine XML-Kalkulationstabelle 2003-Datei ...: Was geht verloren, wenn ich die Arbeitsmappe als eine XML-Kalkulationstabelle 2003-Datei speichere? Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013...
  4. XML Datei als UTF-8 speicher

    in Microsoft Excel Hilfe
    XML Datei als UTF-8 speicher: Hi, ich hätte ein Problem. Aus einer Exceldatei erstelle ich mit einem Makro eine XML-Datei. Dies geht super. Leider brauche ich die Datei als UTF-8. Hoffentlich kann mir einer helfen. Vielen,...
  5. XML Datei erstellen

    in Microsoft Access Hilfe
    XML Datei erstellen: Hallo, ich habe eine Access DB in der 3 Tabellen enthalten sind, aus diesen 3 Tabellen soll eine xml Datei erstellt werden. Eine Zip-Datei mit einer Bsp. DB und einem XML File (die Struktur muss...
  6. VBA im aus vielen Dateien XML´s zu erstellen

    in Microsoft Excel Hilfe
    VBA im aus vielen Dateien XML´s zu erstellen: Schönen guten Tag, Excel: 2013 ich stehe für mich vor einem großen Problem ;) Ich habe ca. 1600 ca. 1KB große .txt files die folgendermaßen aufgebaut sind: Typ;Count 10;5 und...
  7. xml datei importieren

    in Microsoft Excel Hilfe
    xml datei importieren: Hallo experten Ich benutze Excel 2010 Die manuelle variante 1. Daten , aus anderen Quellen , vom xml-Daten import 2. Datenquelle auswählen 3. Dateiname wählen ( z.b....
  8. Mehrere XML-Dateien hintereinander in Excel einlesen

    in Microsoft Excel Hilfe
    Mehrere XML-Dateien hintereinander in Excel einlesen: Hallo, ich habe folgendes Problem. Ich habe einen Ordner mit ca. 1000 xml-Dateien der gleichen Struktur. Diese möchte ich gerne per vba mit Hilfe einer Schleife in eine Excel-Datei...
  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