paulelch
Goto Top

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

Content-Key: 392073

Url: https://administrator.de/contentid/392073

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: 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.
Mitglied: 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