Bonjour à tous
je dois parser un fichier XML de commandes hébergé à distance.
je parviens facilement à parser les nodes parents et enfants mais pas les enfants des enfants.
voici la structure du 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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
<?xml version="1.0" encoding="ISO-8859-1"?>
    <statistics ip="90.32.88.139" timeGenerated="2011-11-15 09:53:39">
    <commandes>
		<commande>
			<marketplace><![CDATA[RDC]]></marketplace>
			<status><![CDATA[En attente]]></status>
			<com_id><![CDATA[01]]></com_id>
			<com_payement_date><![CDATA[15/11/2011]]></com_payement_date>
			<com_purchase_date><![CDATA[15/11/2011]]></com_purchase_date>
			<com_fact_societe><![CDATA[]]></com_fact_societe>
			<com_fact_nom><![CDATA[Durand]]></com_fact_nom>
			<com_fact_prenom><![CDATA[Gael]]></com_fact_prenom>
			<com_fact_email><![CDATA[mail@mail.fr]]></com_fact_email>
			<com_fact_adresse><![CDATA[Rue pas loin d'ici]]></com_fact_adresse>
			<com_fact_cp><![CDATA[75003]]></com_fact_cp>
			<com_fact_ville><![CDATA[Paris]]></com_fact_ville>
			<com_fact_pays><![CDATA[France]]></com_fact_pays>
			<com_fact_telephone_home><![CDATA[0102030405]]></com_fact_telephone_home>
			<com_fact_telephone_office><![CDATA[]]></com_fact_telephone_office>
			<liv_fact_societe><![CDATA[]]></liv_fact_societe>
			<liv_fact_nom><![CDATA[Durand]]></liv_fact_nom>
			<liv_fact_prenom><![CDATA[Gael]]></liv_fact_prenom>
			<liv_fact_email><![CDATA[mail@mail.fr]]></liv_fact_email>
			<liv_fact_adresse><![CDATA[Rue pas loin d'ici]]></liv_fact_adresse>
			<liv_fact_adresse_2><![CDATA[]]></liv_fact_adresse_2>
			<liv_fact_adresse_complement><![CDATA[]]></liv_fact_adresse_complement>
			<liv_fact_cp><![CDATA[75003]]></liv_fact_cp>
			<liv_fact_ville><![CDATA[Paris]]></liv_fact_ville>
			<liv_fact_pays><![CDATA[France]]></liv_fact_pays>
			<liv_fact_telephone_home><![CDATA[]]></liv_fact_telephone_home>
			<liv_fact_telephone_office><![CDATA[]]></liv_fact_telephone_office>
			<com_montant_commande><![CDATA[361.99]]></com_montant_commande>
			<com_montant_tax><![CDATA[00]]></com_montant_tax>
			<com_nb_article><![CDATA[2]]></com_nb_article>
			<com_shipping><![CDATA[]]></com_shipping>
			<com_shipping_description><![CDATA[Calberson]]></com_shipping_description>
			<com_commentaires><![CDATA[]]></com_commentaires>
			<com_commission><![CDATA[]]></com_commission>
			<com_tracking_colis><![CDATA[]]></com_tracking_colis>
			<com_ip><![CDATA[]]></com_ip>
			<com_checkout_payment><![CDATA[]]></com_checkout_payment>
			<com_type_payment><![CDATA[Carte]]></com_type_payment>
			<com_type_livraison><![CDATA[]]></com_type_livraison>
			<panier>
				<nb_orders>2</nb_orders>
				<produits>
				<produit>
				<id><![CDATA[1504]]></id>
				<titre><![CDATA[Compresseur 100 l 3 cv]]></titre>
				<category><![CDATA[]]></category>
				<url_produit><![CDATA[Compresseur]]></url_produit>
				<url_image><![CDATA[/images/3cv-01504a.jpg]]></url_image>
				<sku><![CDATA[]]></sku>
				<qt><![CDATA[1]]></qt>
				<marque><![CDATA[]]></marque>
				<ean><![CDATA[]]></ean>
				<prix><![CDATA[359,99 ]]></prix>
				</produit>
 
				<produit>
				<id><![CDATA[2458]]></id>
				<titre><![CDATA[Bâche de protection multi usages]]></titre>
				<category><![CDATA[]]></category>
				<url_produit><![CDATA[Bâches]]></url_produit>
				<url_image><![CDATA[http://images/2458.jpg]]></url_image>
				<sku><![CDATA[]]></sku>
				<qt><![CDATA[1]]></qt>
				<marque><![CDATA[]]></marque>
				<ean><![CDATA[]]></ean>
				<prix><![CDATA[2,00]]></prix>
				</produit>
				</produits>
			</panier>
		</commande>
 
		<commande>
			<marketplace><![CDATA[RDC]]></marketplace>
			<status><![CDATA[En attente]]></status>
			<com_id><![CDATA[01]]></com_id>
			<com_mrid><![CDATA[00]]></com_mrid>
			<com_refid><![CDATA[02]]></com_refid>
			<com_payement_date><![CDATA[15/11/2011]]></com_payement_date>
			<com_purchase_date><![CDATA[15/11/2011]]></com_purchase_date>
			<com_fact_societe><![CDATA[]]></com_fact_societe>
			<com_fact_nom><![CDATA[Dupont]]></com_fact_nom>
			<com_fact_prenom><![CDATA[Eric]]></com_fact_prenom>
			<com_fact_email><![CDATA[mail@mail.fr]]></com_fact_email>
			<com_fact_adresse><![CDATA[Rue par la bas]]></com_fact_adresse>
			<com_fact_adresse_2><![CDATA[BP 753]]></com_fact_adresse_2>
			<com_fact_adresse_complement><![CDATA[]]></com_fact_adresse_complement>
			<com_fact_cp><![CDATA[75003]]></com_fact_cp>
			<com_fact_ville><![CDATA[Paris cedex]]></com_fact_ville>
			<com_fact_pays><![CDATA[France]]></com_fact_pays>
			<com_fact_telephone_home><![CDATA[01090807]]></com_fact_telephone_home>
			<com_fact_telephone_office><![CDATA[]]></com_fact_telephone_office>
			<liv_fact_societe><![CDATA[]]></liv_fact_societe>
			<liv_fact_nom><![CDATA[Dupont]]></liv_fact_nom>
			<liv_fact_prenom><![CDATA[Eric]]></liv_fact_prenom>
			<liv_fact_email><![CDATA[mail@mail.fr]]></liv_fact_email>
			<liv_fact_adresse><![CDATA[Rue par la bas]]></liv_fact_adresse>
			<liv_fact_adresse_2><![CDATA[BP 753]]></liv_fact_adresse_2>
			<liv_fact_adresse_complement><![CDATA[]]></liv_fact_adresse_complement>
			<liv_fact_cp><![CDATA[75003]]></liv_fact_cp>
			<liv_fact_ville><![CDATA[Paris cedex]]></liv_fact_ville>
			<liv_fact_pays><![CDATA[France]]></liv_fact_pays>
			<liv_fact_telephone_home><![CDATA[]]></liv_fact_telephone_home>
			<liv_fact_telephone_office><![CDATA[]]></liv_fact_telephone_office>
			<com_montant_commande><![CDATA[78.99]]></com_montant_commande>
			<com_montant_tax><![CDATA[00]]></com_montant_tax>
			<com_nb_article><![CDATA[2]]></com_nb_article>
			<com_shipping><![CDATA[]]></com_shipping>
			<com_shipping_description><![CDATA[Colissimo]]></com_shipping_description>
			<com_commentaires><![CDATA[]]></com_commentaires>
			<com_commission><![CDATA[]]></com_commission>
			<com_tracking_colis><![CDATA[]]></com_tracking_colis>
			<com_ip><![CDATA[]]></com_ip>
			<com_checkout_payment><![CDATA[]]></com_checkout_payment>
			<com_type_payment><![CDATA[Carte]]></com_type_payment>
			<com_type_livraison><![CDATA[]]></com_type_livraison>
			<panier>
				<nb_orders>2</nb_orders>
				<produits>
				<produit>
				<id><![CDATA[1555]]></id>
				<titre><![CDATA[Aspirateur à cendre inox]]></titre>
				<category><![CDATA[]]></category>
				<url_produit><![CDATA[Aspirateur ]]></url_produit>
				<url_image><![CDATA[http://images/aspirateur-cendre-inox-1555.jpg]]></url_image>
				<sku><![CDATA[]]></sku>
				<qt><![CDATA[1]]></qt>
				<marque><![CDATA[]]></marque>
				<ean><![CDATA[]]></ean>
				<prix><![CDATA[69,99]]></prix>
				</produit>
 
				<produit>
				<id><![CDATA[4117]]></id>
				<titre><![CDATA[Nappe anti tâche ronde motif Oloron bleu]]></titre>
				<category><![CDATA[]]></category>
				<url_produit><![CDATA[Nappe]]></url_produit>
				<url_image><![CDATA[http://images/blank-1.gif]]></url_image>
				<sku><![CDATA[]]></sku>
				<qt><![CDATA[1]]></qt>
				<marque><![CDATA[]]></marque>
				<ean><![CDATA[]]></ean>
				<prix><![CDATA[9,00]]></prix>
				</produit>
				</produits>
			</panier>
		</commande>
    </commandes>
    </statistics>
Voici le code que j'ai fait
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
objXML.Load CStr(fluxrss)
If objXML.parseError.errorCode <> 0 Then
Dim xPE
    Set xPE = objXML.parseError ' obtient l'objet ParseError
    With xPE
        strErrText = "Votre document XML n'a pu être chargé en raison "
        strErrText = strErrText & "de l'erreur suivante : <br>" & vbCrLf
        strErrText = strErrText & "Error numéro : " & .errorCode
        strErrText = strErrText & " : " & xPE.reason & vbCrLf
        strErrText = strErrText & "<br>Ligne " & .Line & vbCrLf
        strErrText = strErrText & "<br>Position ligne : " & .filepos & vbCrLf
        strErrText = strErrText & "<br>Texte source : " & .srcText & vbCrLf
        strErrText = strErrText & "<br>URL : " & .url
        Response.Write strErrText
    End With
 
	else
	Set Cmds = objXML.getElementsByTagName("commande")
	NbCmds=Cmds.length
	Set refer = objXML.getElementsByTagName("produit")
	NbArticle=refer.length
 
 
 
 For i = 0 to (NbCmds-1)
	Nom=Cmds.item(i).childNodes.item(8).text
	Response.write Nom&"<br>"
 'For j = 0 to (NbArticle-1)
for each x in refer
      Ref			= refer.item(x).childNodes.item(0).childNodes.item(0).text
	  'Designation	= refer.item(j).childNodes.item(0).childNodes.item(2).text
	  'Qte			= refer.item(j).childNodes.item(0).childNodes.item(6).text
	  'Prix			= refer.item(i).childNodes.item(0).childNodes.item(9).text	
 
	response.write Ref&" "&Designation&" "&Qte&" "&Prix&"&euro; <br>"
 Next
 
Next	
 
End If
J'arrive bien à afficher les deux commandes mais le contenu du panier s'ajoute à chaque client
Je ne parvien pas à bien parser le tag <produit> pour chaque commande.
Merci pour votre aide