Bonjour,

Cela fait une semaine que je découvre comment utiliser le XML dans VB et j'ai pu faire du code mais il me reste un soucis.

Voici mon fichier XML :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?xml version="1.0" encoding="UTF-8"?>
<request>
<Index>220</Index>
<Version>5.2</Version>
<Test>0</Test>
    <PurchaseOrder>
        <Header>
            <CreatedDateDA>17/02/2010</CreatedDateDA>
        </Header>
        <LineArticle>
            <CC1>0151</CC1>
            <RefInterne>1234</RefInterne>
            <CreatedDateDA>17/05/2010</CreatedDateDA>
        </LineArticle>
        <LineArticle>
            <CC1>0150</CC1>
            <RefInterne>1234</RefInterne>
            <CreatedDateDA>17/05/2010</CreatedDateDA>
        </LineArticle>
        <LineArticle>
            <CC1>0151</CC1>
            <RefInterne>1234</RefInterne>
            <CreatedDateDA>17/05/2010</CreatedDateDA>
        </LineArticle>
    </PurchaseOrder>
    <PurchaseOrder>
        <Header>
            <CreatedDateDA>17/03/2010</CreatedDateDA>
        </Header>
        <LineArticle>
            <CC1>0152</CC1>
            <RefInterne>1234</RefInterne>
            <CreatedDateDA>18/02/2010</CreatedDateDA>
        </LineArticle>
        <LineArticle>
            <CC1>0154</CC1>
            <RefInterne>1235</RefInterne>
            <CreatedDateDA>17/02/2010</CreatedDateDA>
        </LineArticle>
        <LineArticle>
            <CC1>0151</CC1>
           <RefInterne>1236</RefInterne>
            <CreatedDateDA>19/02/2010</CreatedDateDA>
        </LineArticle>
    </PurchaseOrder>
</request>
Le but c'est d'avoir "CC1" et "RefInterne" contenus dans "LineArticle" avec la "CreatedDateDA" contenue dans le "Header" associé.


Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
 
 
Dim Document As MSXML2.IXMLDOMDocument
Dim Element As MSXML2.IXMLDOMElement
Dim Element3 As MSXML2.IXMLDOMElement
Dim NodeList As MSXML2.IXMLDOMNodeList
 
Set Document = New MSXML2.DOMDocument
 
    Document.async = False
 
    If Document.Load(App.Path & "\data\cmd2.xml") Then
 
        For Each Element In Document.selectNodes("//PurchaseOrder/Header")
 
           ValDate = Element.selectSingleNode("CreatedDateDA").Text
 
            Set NodeList = Element.selectNodes("//LineArticle")
 
            If NodeList.length > 0 Then
 
                For Each Element3 In NodeList
 
                    CC1 = Element3.selectSingleNode("CC1").Text  
                    RefInterne = Element3.selectSingleNode("RefInterne").Text  
 
                    msgbox ValDate & CC1 & RefInterne
 
                Next
            Else
 
            End If
 
        Next
 
    Else
        MsgBox "Erreur de lecture du document XML"
        End
    End If

Le soucis c'est que j'ai tous les "CC1" et "RefInterne" du fichier à chaque "CreatedDateDA" de l'"Header" alors que je voudrai uniquement que ceux qui correspondent à l'"Header" en cours.
Je sais pas si je suis clair ?
Je me suis inspiré du document suivant : http://baptiste-wicht.developpez.com...ipt/xml/xpath/

Je veux faire la même chose (lecture fichier XML) en VB6

Pourriez-vous me dire ce qui ne va pas dans mon code, parceque là je tourne en rond ?

Merci beaucoup.

Dams