Hallo!
ich möchte aus einer XML-Datei einen Wert auslesen und habe eine entsprechende VBA geschrieben. Im ersten Schritt soll der Wert zum Testen erstmla nur in einer Message-Box angezeigt werden. Ich möchte einfach erstmal nur sehen, dass der richtige Wert gezogen wird.
Das VBA läuft fehlerfrei durch, nur der Wert wird nicht gezogen und die Box bleibt leer.
Hier ist der Bereich in dem der Wert in der XML steht, mich interessiert nur der makierte Wert:
<concentrationResult analyteAbsorption="0.2621835" tcAbsorption="0.0" checkWLAbsorption="0.0" concentration="20.24343"/>
<renderedResult concentration="20.24" unit="ppm" citation="XXXX"/>
Die VBA sieht wie folgt aus:
Sub XMLParser()
Dim xDoc As New MSXML2.DOMDocument60
Dim node As IXMLDOMElement
Set xDoc = New MSXML2.DOMDocument60
With xDoc
.async = False
.validateOnParse = True
If xDoc.Load("C:\Test\Beispiel.xml") = False Then
Debug.Print .parseError.reason, .parseError.ErrorCode
Exit Sub
End If
Set node = xDoc.SelectSingleNode("//renderedResult")
MsgBox node.Text
End With
End Sub
Im markierten Bereich der VBA wird der Bereich in dem der Wert steht definiert. Wie muss ich das VBA ändern, damit auch der Wert gezogen wird?
Dies wäre das erste Problem. Da die Datei immer einen anderen Namen hat, würde ich gern die VBA soweit abändern, dass nicht der Dateiname angegeben ist (If xDoc.Load("C:\Test\Beispiel.xml")), sondern in dem Bereich die vorhandene XML-Datei ausgelesen wird, egal wie sie heißt. Die Krönung wäre, dass die Datei, nach dem auslesen dann noch gelöscht wird.
Viele Grüße
Jens
|