Analyser le Fichier XML avec VBA

J'ai un fichier XML avec une structure semblable à ceci:

<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>

J'ai besoin d'analyser l'ensemble du dossier et le mettre dans un tableau. (Note: eval_d et eval_e fait de plus d'une centaine d'attributs de chaque). J'ai essayé d'utiliser MSXML2 cependant je me retrouve coincé lorsque j'essaie d'analyser le fichier. En utilisant les réponses à Comment pase XML en VBA et Parser XML en VBA j'ai pu y arriver :

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

Cependant, au lieu de me donner les bonnes valeurs, il me donne le flotteur dans eval_id 4 fois...

Merci !

EDIT: je suis à l'aide de Microsoft Access 2002 SP3

La version de MS Access vous à l'aide de ( msdn.microsoft.com/en-us/library/ff823157.aspx ) ?
Je suis l'aide de microsoft access 2002 SP3. J'ai essayé le importXML méthode a cependant j'ai vraiment détesté la façon dont ça ferait une table séparée pour chacun de mes données au niveau 2. Toutes les données doivent être dans la même table. Aussi, je vais devoir contrôler le nom des colonnes où les données à un certain moment dans l'avenir.
Pouvez-vous montrer le résultat attendu?

OriginalL'auteur Estarius | 2012-07-16