Bonjour,
Je cherches a parser le document xml suivant :
je veux mettre le contenu dans un champ table sachant que les informations que je vais extraire commence a partir de la balise
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
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 <?xml version="1.0" encoding="Windows-1252"?> <Transmission> <Id>{ac495ef5-0000e454-0000476e-0294f798}</Id> <Format>Integrator 1.3</Format> <Sender> <Id>1</Id> <Name>Combi </Name> <User>Default Manager</User> </Sender> <Job> <Id>000000010000007c</Id> <Name>Normal (3)</Name> <Type>NORMAL</Type> <Samples>2</Samples> <TestDate>26/05/2016</TestDate> <InfoList> <Info Type="CollectionDate">26/05/2016</Info> <Info Type="Sampling">MANUAL</Info> </InfoList> <UserDefinedFieldList> </UserDefinedFieldList> <MeasureProgram> <Name>Contrôle</Name> <ComponentList> <Component Id="020-001-000-000"> <Name>INFORMATION</Name> <Unit>Result Info</Unit> </Component> <Component Id="015-001-000-000"> <Name>N° SESSION</Name> <Unit>Counter</Unit> </Component> <Component Id="017-001-000-000"> <Name>N° LOT</Name> <Unit>Counter</Unit> </Component> <Component Id="030-006-000-000"> <Name>MG</Name> <Unit>%</Unit> </Component> <Component Id="031-003-000-000"> <Name>MP</Name> <Unit>%</Unit> </Component> <Component Id="034-003-000-000"> <Name>LACT</Name> <Unit>%</Unit> </Component> <Component Id="039-002-000-000"> <Name>FPD</Name> <Unit>mC</Unit> </Component> <Component Id="090-002-000-000"> <Name>Cellules</Name> <Unit>1000/ml</Unit> </Component> <Component Id="020-004-000-000"> <Name>DATE</Name> <Unit>Date</Unit> </Component> <Component Id="020-003-000-000"> <Name>HEURE</Name> <Unit>Time</Unit> </Component> </ComponentList> </MeasureProgram> </Job> <ResultList> <JobId>000000010000007c</JobId> <JobName>Normal (3)</JobName> <Result> <Type>NORMAL</Type> <SubType>VALUE</SubType> <Date>26/05/2016</Date> <Time>15:34:16</Time> <Id>000000f400010001</Id> <UserDefinedFieldList> </UserDefinedFieldList> <ComponentList> <Component Id="017-001-000-000"> <Value>1</Value> </Component> <Component Id="030-006-000-000"> <Value>0.28</Value> </Component> <Component Id="031-003-000-000"> <Value>0.48</Value> </Component> <Component Id="034-003-000-000"> <Value>-0.17</Value> </Component> <Component Id="039-002-000-000"> <Value>-97</Value> </Component> <Component Id="090-002-000-000"> <Value>1</Value> </Component> <Component Id="020-004-000-000" ValueType="text"> <Value>26/05/2016</Value> </Component> <Component Id="020-003-000-000" ValueType="text"> <Value>15:34:16</Value> </Component> </ComponentList> </Result> <Result> <Type>NORMAL</Type> <SubType>VALUE</SubType> <Date>26/05/2016</Date> <Time>15:34:21</Time> <Id>000000f500010001</Id> <UserDefinedFieldList> </UserDefinedFieldList> <ComponentList> <Component Id="017-001-000-000"> <Value>2</Value> </Component> <Component Id="030-006-000-000"> <Value>0.28</Value> </Component> <Component Id="031-003-000-000"> <Value>0.49</Value> </Component> <Component Id="034-003-000-000"> <Value>-0.19</Value> </Component> <Component Id="039-002-000-000"> <Value>-97</Value> </Component> <Component Id="090-002-000-000"> <Value>0</Value> </Component> <Component Id="020-004-000-000" ValueType="text"> <Value>26/05/2016</Value> </Component> <Component Id="020-003-000-000" ValueType="text"> <Value>15:34:21</Value> </Component> </ComponentList> </Result> </ResultList> </Transmission>
j'ai procédés comme suit :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <Component Id="017-001-000-000"> <Name>N° LOT</Name> <Unit>Counter</Unit> </Component>
je cherche la balise component et je remplis un tableau associatif de chaine qui a comme indice id_name et comme valeur la valeur de l'id (tableau[id_N° LOT] = "017-001-000-000") pour chercher ensuite les valeurs des id dans la balise resultlist
pour remplir le tableau je mets le code suivant:
le problème est lorsque je mets
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 //Recherche des ids des noms de colonne XMLRecherche("DocXML","Component",XMLBalise,XMLExact) //Pointaer la troisième ligne XMLSuivant("DocXML") XMLSuivant("DocXML") taBleau_id_criters est un tableau associatif de chaînes ANSI TANTQUE XMLTrouve("DocXML") XMLFils("DocXML") taBleau_id_criters[XMLNomElément("DocXML")+"_Lot"] = XMLDonnée("DocXML") XMLParent("DocXML") XMLSuivant("DocXML") FIN POUR TOUT ELEMENT sindice,scontenu DE taBleau_id_criters Trace(ChaîneConstruit("%1 : %2", sindice, scontenu)) FINça donne le troisième élément mais lorsque je mets la boucle il pointe le dernier élément.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 XMLRecherche("DocXML","Component",XMLBalise,XMLExact) XMLSuivant("DocXML") XMLSuivant("DocXML") trace("Balise trouvée " + XMLNomElément("DocXML")+" : "+ XMLDonnée("DocXML"))
merci pour vos aides
Partager