paulelch

Suche Excel Batch (VBA, DOM usw.) um XML Daten in Tabelle zu schreiben

Hallo zusammen,

ich habe ca. 15.000 XML Dateien in einem Ordner liegen. Jede dieser Dateien ist gleich aufgebaut. Ich suche nun ein Skript o.ä. wie ich jeweils die Felder dieser XML Dateien in eine Excel Datei schreiben kann.

Der Aufbau der XML Datei ist wie folgt (z.B. Datei "aaa111_2018.xml"):


<?xml version="1.0" encoding="ISO-8859-1"?>  
<xmlBody> <HTMLFILENAME>aaa102_2019</HTMLFILENAME> 
<HTMLTITLE></HTMLTITLE> 
<Section1> 
<UE2-Blau>Ferienwohnungen mit Pool</UE2-Blau> 
<UE2-Blau> <Objektcode>AAA 100</Objektcode> - Wohnung &#xa0;2-4 Personen </UE2-Blau> 

<UE2-Blau> 
<Objektcode>AAA 101</Objektcode> - Wohnung &#xa0;4 Personen 
</UE2-Blau> 

<UE2-Blau> 
<Objektcode>AAA 102</Objektcode> - Wohnung &#xa0;6 Personen 
</UE2-Blau> 

<G1> Das 2010 gebaute Haus ...usw.</G1> 

<G1-mL></G1-mL> 

<G1><Objektcode> AAA 100 </Objektcode> 3-Zimmer-Wohnung, Erdgeschoss, ca. 45 m2. </G1> 

<G1><Objektcode> AAA 101 </Objektcode> 3-Zimmer-Wohnung, Erdgeschoss, ca. 55&#xa0;m2. </G1> 

<G1><Objektcode> AAA 102 </Objektcode> 4-Zimmer-Wohnung, Obergeschoss, ca. 75 m2. </G1> 

</Section1>
</xmlBody>

Ich möchte nun jeweils den Text aus <G1> in ein Excelfeld schreiben. Leider kenne ich mich mit VBA Progammierung nicht aus und hoffe daher auf die Hilfe der Profis hier in Forum. Ich bin über jeden Ansatz dankbar.

Viele Grüße
Paule
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 392073

Url: https://administrator.de/forum/suche-excel-batch-vba-dom-usw-um-xml-daten-in-tabelle-zu-schreiben-392073.html

Ausgedruckt am: 28.04.2025 um 21:04 Uhr

137443
137443 09.11.2018 aktualisiert um 11:07:47 Uhr
Goto Top
Wäre ja auch zu viel verlangt die Ansätze hier mal mit der Forumssuche zu erlangen
Excel VBA XML-Nodes auslesen
Das kommt ja fast im Wochenrhythmus
Sub ImportPaulesFuckingXMLs()
    Set fso = CreateObject("Scripting.FileSystemObject")  
    strFolder = ThisWorkbook.Path
    Set xmldoc = CreateObject("msxml2.domdocument")  
    xmldoc.Async = False
    For Each file In fso.GetFolder(strFolder).Files
        xmldoc.Load (file.Path)
        Set Nodes = xmldoc.SelectNodes("//G1")  
        If Not Nodes Is Nothing Then
            For Each Node In Nodes
                Sheets(1).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Value = Node.Text  
            Next
        End If
    Next
End Sub

Gruß l.
PaulElch
PaulElch 13.11.2018 um 09:08:27 Uhr
Goto Top
Hallo 137443,

sorry für die Anfängerfrage, aber ich bin totaler Laie in der VBA Programmierung.
Ich habe dein Skript nun zum Laufen bekommen und er liest mir die Texte von "G1" auch super aus. Ich würde nun gerne noch "HTMLTITLE" in Spalte A ausgeben und von "G1" immer nur der erste Block. Kannst du mir diesbezüglich noch einmal weiterhelfen?

Vielen Dank und Gruß
Paul