Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Einträge aus XML-Datei auslesen

Betrifft: Einträge aus XML-Datei auslesen von: Sergej
Geschrieben am: 10.10.2020 14:09:33

Hallo Leute,

wie kann ich bitte per VBA aus einer XML-Datei "C:\Kundendaten\2020\Export.xml" alle Einträge in Excel zeilenweise ab Zeile A2 untereinander auslesen, die zwischen
<CmdString> und </CmdString> stehen und als zusätzliches Kriterium mit .pdf</CmdString> .exe</CmdString> oder .ini</CmdString> enden?

<CmdString>....... Kunden.pdf</CmdString>
<CmdString>....... PMS.exe</CmdString>
<CmdString>....... Datensätze.ini</CmdString>

Als Ergebnis im Bsp. wäre es:
....... Kunden.pdf
....... PMS.exe
....... Datensätze.ini

Besten Dank im Voraus für euere Unterstützung!

Gruß,
Sergej

Betrifft: AW: Einträge aus XML-Datei auslesen
von: volti
Geschrieben am: 10.10.2020 19:39:27

Hallo Sergej,

vielleicht hilft Dir nachfolgender Code weiter:

Code:
[Cc][+][-]
 
Option Explicit Sub XMLRead() Dim Obj As Object, iOutZeile As Long, Wsh As Worksheet Set Wsh = Sheets("Tabelle1") 'Tabelle ggf. anpassen With CreateObject("MSXML2.DOMDocument") .Load "C:\CustomUIEditor\Samples\Export.xml" 'Pfad ggf. anpassen If .parseerror.ErrorCode <> 0 Then MsgBox "in der Zeile: " & .parseerror.Line & " " & _ .parseerror.srcText & vbCr & .parseerror.reason, vbCritical, "XML-Fehler" Else iOutZeile = 2 For Each Obj In .getElementsByTagName("CmdString") Select Case LCase(Right(Obj.Text, 4)) Case ".exe", ".ini", ".pdf" Wsh.Cells(iOutZeile, "A").value = Obj.Text 'Member aus dem Element holen iOutZeile = iOutZeile + 1 End Select Next End If End With End Sub
 
____________________
viele Grüße aus Freigericht
Karl-Heinz


Betrifft: AW: Einträge aus XML-Datei auslesen
von: volti
Geschrieben am: 10.10.2020 20:17:48

Pfad noch angepasst!

Code:
[Cc][+][-]
 
Option Explicit Sub XMLRead() Dim Obj As Object, iOutZeile As Long, Wsh As Worksheet Set Wsh = Sheets("Tabelle1") 'Tabelle ggf. anpassen With CreateObject("MSXML2.DOMDocument") .Load "C:\Kundendaten\2020\Export.xml" 'Pfad ggf. anpassen If .parseerror.ErrorCode <> 0 Then MsgBox "in der Zeile: " & .parseerror.Line & " " & _ .parseerror.srcText & vbCr & .parseerror.reason, vbCritical, "XML-Fehler" Else iOutZeile = 2 For Each Obj In .getElementsByTagName("CmdString") Select Case LCase(Right(Obj.Text, 4)) Case ".exe", ".ini", ".pdf" Wsh.Cells(iOutZeile, "A").value = Obj.Text 'Member aus dem Element holen iOutZeile = iOutZeile + 1 End Select Next End If End With End Sub
 
____________________
viele Grüße aus Freigericht
Karl-Heinz


Betrifft: AW: Einträge aus XML-Datei auslesen
von: Sergej
Geschrieben am: 10.10.2020 20:29:40

Hallo lieber Karl-Heinz,

es funktioniert wie immer perfekt. Vielen herzlichen Dank!

Beste Grüße,
Sergej