Salut a tous.
j'ai ce code xml
Code xml : 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 <P> <P1> <Operation>insertion</Operation> <PId>2869</PId> <Details> <champ>vendeur</champ> <encienneVal></encienneVal> <nouvelleVal>1</nouvelleVal> <champ>stok</champ> <encienneVal></encienneVal> <nouvelleVal>10</nouvelleVal> </Details> </P1> <P1> <Operation>mise a jour</Operation> <PId>2860</PId> <Details> <champ>vendeur</champ> <encienneVal>10</encienneVal> <nouvelleVal>3</nouvelleVal> <champ>stok</champ> <encienneVal>5</encienneVal> <nouvelleVal>40</nouvelleVal> </Details> </P1> </P>
je veux recuperer pour chaque P1 l'Operation effectuée ensuite le idP et aussi les champs inserés ou modifiés.apparament ca marche, mais quand j'ai plusieurs balise <Champ> alors la la boucle s'arette avant de les recuperer je sais que c'est a cause "exit while" mais je sais pas quoi fairea la place, surtout que je suis pas doué pour ce qui est XML,XPATH...
pour cela j'ai fais ceci:
Code vb : 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 Dim document As XPathDocument = New XPathDocument(XmlSource) Dim navigator As XPathNavigator = document.CreateNavigator() Dim nodesoperation As XPathNodeIterator = navigator.Select("/P/P1/Operation") Dim nodesId As XPathNodeIterator = navigator.Select("/P/P1/PId") Dim nodesNameFld As XPathNodeIterator = navigator.Select("/P/P1/Details/Champ") Dim nodesNewVal As XPathNodeIterator = navigator.Select("/P/P1/Details/NouvelleVal") Dim nodesOldVal As XPathNodeIterator = navigator.Select("/P/P1/Details/EncienneVal") While nodesoperation.MoveNext() MsgBox(nodesoperation.Current.Value) While nodesId.MoveNext() MsgBox(nodesId.Current.Value) Exit While End While While nodesNameFld.MoveNext() MsgBox(nodesNameFld.Current.Value) Exit While End While While nodesOldVal.MoveNext() MsgBox(nodesOldVal.Current.Value) Exit While End While While nodesNewVal.MoveNext() MsgBox(nodesNewVal.Current.Value) Exit While End While End While
s'il ya des idées beaucoup mieux que la mienne n'hésitez surtout pas.
Merci
Partager