Thema Datum  Von Nutzer Rating
Antwort
Rot XML Parsen / Zusammenhängen/ Schreiben
31.03.2020 13:38:13 MrChipsy
NotSolved

Ansicht des Beitrags:
Von:
MrChipsy
Datum:
31.03.2020 13:38:13
Views:
803
Rating: Antwort:
  Ja
Thema:
XML Parsen / Zusammenhängen/ Schreiben

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

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot XML Parsen / Zusammenhängen/ Schreiben
31.03.2020 13:38:13 MrChipsy
NotSolved