Info sur la lecture d'un fichier XML
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:
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:
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