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

Printed on: April 19, 2024 at 12:04 o'clock

Mitglied: 137443
137443 Nov 09, 2018 updated at 10:07:47 (UTC)
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.
Member: PaulElch
PaulElch Nov 13, 2018 at 08:08:27 (UTC)
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