Hallo zusammen,
ich beschäftige mich zum ersten Mal mit VBA in Excel und möchte gerne eine XML Datei einlesen, die für mich relevanten Daten finden, zusammenhängen und in eine Zelle schreiben.
Hier ein Auszug aus dem File:
<Variable Name="Test" DataType="ns=1;i=100000" TypeDefinition="ns=1;i=100005">
<ACL>
<ACE Role="2" Allow="0x015F" />
<ACE Role="1" Allow="0x017F" />
<ACE Role="3" Allow="0x0117" />
</ACL>
<Variable Name="In" DataType="ns=1;i=100090" TypeDefinition="ns=1;i=100095">
<ACL>
<ACE Role="2" Allow="0x015F" />
<ACE Role="1" Allow="0x017F" />
<ACE Role="3" Allow="0x0117" />
</ACL>
<Variable Name="StructureSize" DataType="i=7">
<ACL>
<ACE Role="2" Allow="0x015F" />
<ACE Role="1" Allow="0x017F" />
<ACE Role="3" Allow="0x0117" />
</ACL>
</Variable>
<Variable Name="Settings" DataType="ns=1;i=100100" TypeDefinition="ns=1;i=100105">
<ACL>
<ACE Role="2" Allow="0x015F" />
<ACE Role="1" Allow="0x017F" />
<ACE Role="3" Allow="0x0117" />
</ACL>
<Variable Name="ToBeDefined" DataType="i=1">
<ACL>
<ACE Role="2" Allow="0x015F" />
<ACE Role="1" Allow="0x017F" />
<ACE Role="3" Allow="0x0117" />
</ACL>
</Variable>
</Variable>
</Variable>
</Variable>
Hieraus soll Test.In.StructureSize und Test.In.Settings.ToBeDefined entstehen und dies in eine Spalte geschrieben werden.
Das Schreiben in eine Spalte sollte ich hinbekommen, aber wie extrahiere ich die passenden Inhalte und hängen diese zusammen.
Die Nodelist ist immer leer.
Sub LoadDocument()
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Title = "Select a .uar File"
.Filters.Add "XML File", "*.uar", 1
If .Show = True Then
xmlFileName = .SelectedItems(1)
Dim xDoc As Object
Set xDoc = New MSXML2.DOMDocument60
xDoc.async = False: xDoc.validateOnParse = False
If xDoc.Load(xmlFileName) Then
' The document loaded successfully.
MsgBox "File loaded"
Else
' The document failed to load.
MsgBox "File not found!"
End If
Dim AllNodes As MSXML2.IXMLDOMNodeList
Dim xmlAttribute As MSXML2.IXMLDOMAttribute
Set AllNodes = xDoc.DocumentElement.SelectNodes("Variable/@Name")
If AllNodes.Length = 0 Then
'show some message
MsgBox "NodeList Error!"
Else
End If
End If
End With
End Sub
Kann mir hiier jemand helfen?
Vielen Dank
|