Parse XML File with VBA
Mam plik XML o strukturze podobnej do tej:
<egh_eval>
<eval_set>
<eval_id>FLOAT</eval_id>
<eval_d>
<height>INT</height>
<weight>INT</weight>
</eval_d>
<eval_e>
<height>INT</height>
<weight>INT</weight>
</eval_e>
<eval_cred>
<credit>FLOAT</credit>
</eval_cred>
</eval_set>
Muszę przeanalizować cały plik i umieścić go w tabeli. (Uwaga: eval_d i eval_e mają w rzeczywistości ponad sto atrybutów). Próbowałem użyć MSXML2, ale utknąłem, gdy próbuję przeanalizować plik. Korzystając z odpowiedzi naJak pase XML w VBA iParse XML w VBA Udało mi się tam dotrzeć:
Dim fSuccess As Boolean
Dim oDoc As MSXML2.DOMDocument
Dim oRoot As MSXML2.IXMLDOMNode ' Level 0 egh_eval
Dim oChild As MSXML2.IXMLDOMNode ' Level 1 eval_set
Dim oChildren As MSXML2.IXMLDOMNode ' Level 2 eval_id, eval_d, eval_e, eval_cred
Dim domList As MSXML2.IXMLDOMNodeList
Set oDoc = New MSXML2.DOMDocument
oDoc.async = False
oDoc.validateOnParse = False
fSuccess = oDoc.Load(Application.CurrentProject.Path & "\file.xml")
Set oRoot = oDoc.documentElement
Set oChild = oRoot.childNodes(0)
Set oChildren = oChild.childNodes(0)
For i = 0 To oChild.childNodes.length - 1
For y = 0 To oChildren.childNodes.length - 1
MsgBox oChildren.nodeName & " : " & oChildren.nodeTypedValue
oChildren.childNodes.nextNode
Next
oChild.childNodes.nextNode
Next
Jednak zamiast podawać mi odpowiednie wartości, daje mi float w eval_id 4 razy ...
Dzięki !
EDYCJA: Korzystam z programu Microsoft Access 2002 z dodatkiem SP3