Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1588to1592
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

XML Datei Importieren Nur bestimmte Tags

XML Datei Importieren Nur bestimmte Tags
10.11.2017 15:15:59
Carsten
Hallo zusammen,
ich habe schon etwas rum probiert um eine XML Datei separiert zu importieren aber komme da zu keinem passenden Ergebniss. Und zwar habe ich eine XML Datei die wie Folgt aufgebaut ist.


066


myIso
1


1701
Force CD
N
180.0
185.0
17.0
15.0
176.0
189.0
2
181.2,176.0,189.0


2701
Force CD
N
280.0
285.0
27.0
25.0
276.0
289.0
2
281.2,276.0,289.0


3701
Force CD
N
380.0
385.0
37.0
35.0
376.0
389.0
2
381.2,376.0,389.0



Von dort möchte ich den Inhalt der Item Tags also deren Werte in einer Tabelle darstellen.
Das die einzelnen Werte in einer Tabelle angezeigt werden. Habe mal eine Beispiel Datei gebastelt. Vlt hat da noch wer Ideen? Hatte schon überlegt über RegEx das zu machen aber ist bestimmt etwas unpassend oder?
https://www.herber.de/bbs/user/117596.xlsx
PS: Die XML Datei wird hier nicht richtig angezeigt befindet sich aber in der Excel datei.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XML Datei Importieren Nur bestimmte Tags
10.11.2017 15:40:03
Peter(silie)
Hallo,
so könnte man das machen:
Private Function Return_String(ByVal Input_ As String) As String
Dim pos_1 As Long, pos_2 As Long
Dim tmp As String
pos_1 = InStr(1, Input_, "", vbTextCompare)
If pos_1 = 0 Or pos_2 = 0 Then Exit Function
tmp = Mid(Input_, pos_2 + 1, Len(Input_) - pos_2)
pos_1 = InStr(1, tmp, "", vbTextCompare)
If pos_1 = 0 Or pos_2 = 0 Then Exit Function
tmp = Mid(tmp, 1, pos_1 - 1)
Return_String = tmp
End Function
Was bei deiner Mappe folgenden Output liefert:
066
myIso
1
1701
Force CD
N
180.0
185.0
17.0
15.0
176.0
189.0
2
181.2,176.0,189.0
2701
Force CD
N
280.0
285.0
27.0
25.0
276.0
289.0
2
281.2,276.0,289.0
3701
Force CD
N
380.0
385.0
37.0
35.0
376.0
389.0
2
381.2,376.0,389.0

Anzeige
XML - MSXML2.DOMDocument
10.11.2017 18:58:38
Tino
Hallo,
versuch mal so, die XML kannst Du über einen Dialog auswählen.
Code ohne Fehlerbeandlung!
Sub Lese_XML()
Dim objXML As Object, ListNode As Object, oNode As Object
Dim sPath$
Dim rng As Range
Dim nRow&, nCol&
ChDrive ThisWorkbook.Path
ChDir ThisWorkbook.Path
sPath = Application.GetOpenFilename("XML-File (*.xml), *.xml")
If sPath = CStr(False) Then Exit Sub
With Tabelle1 'Tabelle
'Bereich Zeile 1 ist Überschrift
'Überschrift = Name vom Item
Set rng = .Range("A:J")
.ListObjects("Tabelle1").Resize Range("$A$1:$J$2")
rng.Rows(2).Resize(.Rows.Count - 1).Clear 'Tabelle leer
End With
Set objXML = CreateObject("MSXML2.DOMDocument")
' Dokument laden
If objXML.Load(sPath) Then
Set ListNode = objXML.SelectNodes("/SAMPLESET/SUMMARY/ITEM") 'alle ITEM
nRow = 2 'erste Zeile
For Each oNode In ListNode
For nCol = 1 To rng.Columns.Count
If Not oNode.SelectSingleNode(rng.Cells(1, nCol)) Is Nothing Then
rng.Cells(nRow, nCol) = oNode.SelectSingleNode(rng.Cells(1, nCol)).Text
End If
Next
nRow = nRow + 1 'nächste Zeile
Next
End If
End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige