Hallo zusammen,
ich versuche bestimmte Werte aus einer XML Datei auszulesen. Da ich bis heute weder viel mit VBA noch mit XML gemacht habe und gar nichts mit beidem zusammen, komme ich momentan nicht weiter und brauche Hilfe.
Die XML hat folgendes Format:
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<nas-report date="Datum">
<filesystem name="name">
<filesystem-size>
<lun>123</lun>
<fs-total>1234</fs-total>
<fs-used>1230</fs-used>
<fs-avail>4</fs-avail>
</filesystem-size>
<savvol-size>
<sv-total>380000</sv-total>
</savvol-size>
</filesystem>
.
.
.
</nas-report>
Ich möchte nun aus bestimmten <filesystem> Elementen die Werte von <fs-total> und <fs-used> auslesen.
Mein bisheriger Versuch sieht wie folgt aus:
Dim objXML As MSXML2.DOMDocument30
Dim xmlLoaded As Boolean
Dim nodeFilesystem As IXMLDOMElement
Dim attributeId As IXMLDOMAttribute
Set objXML = New DOMDocument30
xmlLoaded = objXML.Load(ActiveWorkbook.Path & "\Datei.xml")
If Not xmlLoaded Then
'Fehlerbehandlung
Exit Sub
End If
Set nodeFilesystem = objXML.DocumentElement.SelectSingleNode("/nas-report/filesystem[name="name"]/filesystem-size")
Set attributeId = nodeFilesystem.Attributes.getNamedItem("fs_total")
Debug.Print attributeId.Text
Der Verweis auf die "Microsoft XML 6.0" ist gesetzt.
Da bereits der Befehl .SelectSingleNode "nothing" zurückliefert muss dort wohl der erste Fehler liegen. Leider reichen meine Kenntnisse nicht aus um den Pfad korrekt anzugeben. Wenn ich ihn auf .SelectSingleNode("/nas-report/filesystem") verkürze bekomme ich die korrekten Werte 123 1234 1230 4 heraus. Damit erreiche ich jedoch nur das erste Element.
Gruß
Altmeister