Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1812to1816
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bestimmte Inhalte aus XML auslesen?

Bestimmte Inhalte aus XML auslesen?
18.02.2021 11:30:30
Sergej
Hallo Leute,
ich habe eine sehr lange XML-Datei "D:\Daten\Parametrik\Defintionen.xml". Aus der XML-Datei möchte ich gerne die Einträge zeilenweise in Excel untereinander auslesen, die zwischen beiden Anführungszeichen stehen. Es geht nur um Inhalte, die mit _Bibliothek= beginnen.
Beispiel aus der Datei:
_Bibliothek="daten/BUS_Bussystem.txt"
Nachher in Excel:
daten/BUS_Bussystem.txt
Wie mache ich das bitte per VBA?
Beste Grüße,
Sergej

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bestimmte Inhalte aus XML auslesen?
18.02.2021 12:51:01
volti
Hallo Sergej,
hier mal eine Idee dazu...
Code:

[Cc]

Sub HoleDaten() Dim iFF As Integer, sFilename As String Dim sArr2() As String, sArr() As String Dim iOutZeile As Long, iZeile As Long sFilename = "D:&bsol;Daten&bsol;Parametrik&bsol;Defintionen.xml" iFF = FreeFile If Dir(sFilename) <> "" Then ' Ist Datei vorhanden? Open sFilename For Input As iFF ' Datei öffnen sArr = Split(Input(LOF(iFF), iFF), vbCrLf) ' Daten in Array einlesen Close iFF iOutZeile = 1 For iZeile = 0 To UBound(sArr) ' Alle Zeilen durchgehen sArr2 = Split(sArr(iZeile), "_Bibliothek=") ' Suchbegriff suchen If UBound(sArr2) > 0 Then ActiveSheet.Cells(iOutZeile, "A").Value = Replace(sArr2(1), Chr$(34), "") iOutZeile = iOutZeile + 1 End If Next iZeile End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bestimmte Inhalte aus XML auslesen?
18.02.2021 14:04:17
Sergej
Hallo Karl-Heinz,
zunächst vielen herzlichen Dank. Das sieht schon gut aus. Ich habe das Makro ausgeführt und habe meine 1850 Zeilen drin. :-)
Nur anstatt: daten/BUS_Bussystem.txt wird die ganze Zeile importiert:
daten/BEL_Beleuchtung.txt _Name=Mastleuchte_1-fach Info1=Mastleuchte_1-fach></Mastleuchte_1-fach>
Ich muss schauen, wie ich nur den Inhalt zwischen beiden Anführungszeichen von _Bibliothek="......" importiert bekomme.
Beste Grüße,
Sergej
AW: Bestimmte Inhalte aus XML auslesen?
18.02.2021 14:56:45
volti
Hallo Sergej,
schaue mal, ob es jetzt besser passt.
Man muss halt immer alles relevante sehen und nicht nur Ausschnitte... :-)
Code:

[Cc]

Sub HoleDaten() Dim iFF As Integer, sFilename As String Dim sArr2() As String, sArr() As String Dim iOutZeile As Long, iZeile As Long 'D:&bsol;Daten&bsol;Parametrik&bsol;Defintionen.xml" sFilename = "C:&bsol;CustomUIEditor&bsol;Samples&bsol;Defintionen.xml" iFF = FreeFile If Dir(sFilename) <> "" Then ' Ist Datei vorhanden? Open sFilename For Input As iFF ' Datei öffnen sArr = Split(Input(LOF(iFF), iFF), vbCrLf) ' Daten in Array einlesen Close iFF iOutZeile = 1 For iZeile = 0 To UBound(sArr) ' Alle Zeilen durchgehen sArr2 = Split(sArr(iZeile), "_Bibliothek=") ' Suchbegriff suchen If UBound(sArr2) > 0 Then sArr2 = Split(sArr2(1) & Chr$(34), Chr$(34)) ActiveSheet.Cells(iOutZeile, "A").Value = sArr2(1) iOutZeile = iOutZeile + 1 End If Next iZeile End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bestimmte Inhalte aus XML auslesen?
18.02.2021 15:02:48
volti
Sorry,
vergessen den Pfad wieder anzupassen:
Code:

[Cc]

Sub HoleDaten() Dim iFF As Integer, sFilename As String Dim sArr2() As String, sArr() As String Dim iOutZeile As Long, iZeile As Long sFilename = "D:&bsol;Daten&bsol;Parametrik&bsol;Defintionen.xml" iFF = FreeFile If Dir(sFilename) <> "" Then ' Ist Datei vorhanden? Open sFilename For Input As iFF ' Datei öffnen sArr = Split(Input(LOF(iFF), iFF), vbCrLf) ' Daten in Array einlesen Close iFF iOutZeile = 1 For iZeile = 0 To UBound(sArr) ' Alle Zeilen durchgehen sArr2 = Split(sArr(iZeile), "_Bibliothek=") ' Suchbegriff suchen If UBound(sArr2) > 0 Then sArr2 = Split(sArr2(1) & Chr$(34), Chr$(34)) ActiveSheet.Cells(iOutZeile, "A").Value = sArr2(1) iOutZeile = iOutZeile + 1 End If Next iZeile End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bestimmte Inhalte aus XML auslesen?
18.02.2021 15:03:07
Sergej
Hallo Karl-Heinz,
vielen herzlichen Dank. Es funktioniert perfekt.
Beste Grüße,
Sergej
AW: Bestimmte Inhalte aus XML auslesen?
18.02.2021 15:16:32
volti
Hallo Sergej,
danke für die Rückmeldung. Es funktioniert ja jetzt.
Hier spaßeshalber eine noch etwas kürzere Variante....
Code:

[Cc]

Sub HoleDaten() Dim iFF As Integer, sFilename As String Dim sArr() As String Dim iOutZeile As Long, iZeile As Long sFilename = "D:&bsol;Daten&bsol;Parametrik&bsol;Defintionen.xml" iFF = FreeFile If Dir(sFilename) <> "" Then ' Ist Datei vorhanden? Open sFilename For Input As iFF ' Datei öffnen sArr = Split(Input(LOF(iFF), iFF), "_Bibliothek=") ' Daten in Array einlesen Close iFF iOutZeile = 1 For iZeile = 1 To UBound(sArr) ' Alle Zeilen durchgehen ActiveSheet.Cells(iOutZeile, "A").Value = _ Split(sArr(iZeile) & Chr$(34), Chr$(34))(1) iOutZeile = iOutZeile + 1 Next iZeile End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bestimmte Inhalte aus XML auslesen?
18.02.2021 15:39:24
Sergej
Hallo Karl-Heinz,
es funktioniert auch :-)
Beste Grüße,
Sergej
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige