bonjour
je souhaite récupérer le nom d'un élément fils en fonction de son emplacement dans l'arborescence d'un fichier XML en PHP
auriez vous une solution a mon problème ?
bonjour
je souhaite récupérer le nom d'un élément fils en fonction de son emplacement dans l'arborescence d'un fichier XML en PHP
auriez vous une solution a mon problème ?
PHP connais pas et je n'aurais donc pas pu t'aider de toute façon, mais :
ça veut rien dire, ta question. Donne un exemple (court,) c'est plus simple.
bonjour, je voudrais extraire un nom de balise d'un fichier XML pour le mettre dans une variable php
par exemple je veux récupérer que le nom de balise "Element_B2"et le mettre dans une variable $php quelconque.
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 <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <Root_Element> <Element_A> <Element_A1>TEXT_A1</Element_A1> <Element_A2>TEXT_A2</Element_A2> <Element_A3>TEXT_A3</Element_A3> <Element_A4>TEXT_A4</Element_A4> </Element_A> <Element_B> <Element_B1>TEXT_B1</Element_B1> <Element_B2>TEXT_B2</Element_B2> <Element_B3>TEXT_B3</Element_B3> <Element_B4>TEXT_B4</Element_B4> </Element_B> </Root_Element>
J'utiliserais SimpleXML :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $xml = simplexml_load_file('file.xml'); $elementName = $xml->Element_B->children()[1]->getName();
Après, bien sûr, je ne sais pas comment tu fais pour savoir que tu voulais récupérer le nom de Element_B2 et pas celui de Element_B1 ou Element_B4.
c'est gentil de me repondre
je t'explique je veux pas voir apparaitre "Element_B" dans mon code
car je veux justement recuperer le nom de balise quelqu il soit a partir du load sur un fichier xml (en simplexml ou meme en DOM)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 $xml = simplexml_load_file('file.xml'); $elementName = $xml->Element_B->children()[1]->getName();
si t'as une solution
je veux que toute mon extraction se fasse automatiquement a partir d'un file.xml sans mettre en dur dans mon code des nom de balises
avec ce code
ca me genere une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <?php $xml = simplexml_load_file('file.xml'); $elementName = $xml->Element_B->children()[1]->getName(); ?>
merci de m'aider thelvin( ! ) Parse error: syntax error, unexpected '[' in ***.php on line 4
merci pour ce bout de code il m'aide vraiment
mon but est d'obtenir un fichier php qui permet d'extraire les données
d'un fichiers xml en automatique en partant que du fichier xml et en agissant sur des click souris pour aficher un premier niveau d'arborescence puis pour acceder au niveau inferieur agir sur le nom du premier noeud pour develloper l'arborescence inferieur etc... en affichant les valeur des noueds suivant ainsi que les noeud des noeud (entandu que les second niveau peuvent integrer des noeud et des valeurs dans leur arborescence inferieure)
j'espere avoir été assez claire
merci pour votre aide
bonjour,
J'ai du mettre tout mon code dans un seul fichier c'est plus simple je le redécouperai ensuite merci de votre compréhension.
Je voudrais savoir si il est possible de faire apparaitre le contenu de la liste déroulante de la div 3 suite a la validation sur le bouton ok2 pour pouvoir la réinjecter dans une autre div.
Et aussi si il est possible de réinjecter le choix sur le menu déroulant de la div3 vers la div2 pour n'avoir qu'un seule fenêtre dynamique.
merci d'avance .
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
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <html> <head> <link rel="stylesheet" type="text/css"> <title>TEST</title> <style type="text/css"> .conteneur1 { background-color:white; } .bloc1 { background-color:Orange; top:20px; left:20px; } .conteneur2 { background-color:white; border:solid 2px; position:absolute; top:70px; left:20px; } .bloc2 { background-color:PaleGreen ; width:1px; top:20px; left:20px; width:400px; } .conteneur3 { background-color:white; border:solid 2px; position:absolute; top:70px; left:520px; } .bloc3 { background-color:Orchid ; width:1px; top:20px; left:20px; width:400px; } </style> </head> <body bgcolor="#333399"> <!-----------------------------------------------------------------------------------------------------> <!-----------------------------------------------------------------------------------------------------> <!------------------------------ CHARGEMENT XML ----------------------------------------------------------> <?php $cible = ' <Organigramme> <Informations> </Informations> <Administration_1> <Informations> </Informations> <Direction_1> <Informations> </Informations> <Utilisateur> <prenom>prenom1</prenom> <nom>nom1</nom> </Utilisateur> <Utilisateur> <prenom>prenom2</prenom> <nom>nom2</nom> </Utilisateur> <Utilisateur> <prenom>prenom3</prenom> <nom>nom3</nom> </Utilisateur> </Direction_1> <Directeur_1> <Informations> </Informations> <Utilisateur> <prenom>prenom4</prenom> <nom>nom4</nom> </Utilisateur> </Directeur_1> <Direction_3> <Informations> </Informations> <Directeurs_1> <Informations> </Informations> <Utilisateur> <prenom>prenom5</prenom> <nom>nom5</nom> </Utilisateur> </Directeurs_1> <Service_1> <Informations> </Informations> <Utilisateur> <prenom>prenom6</prenom> <nom>nom6</nom> </Utilisateur> </Service_1> <Service_2> <Informations> </Informations> <Utilisateur> <prenom>prenom7</prenom> <nom>nom7</nom> </Utilisateur> </Service_2> <Service_3> <Informations> </Informations> <Utilisateur> <prenom>prenom8</prenom> <nom>nom8</nom> </Utilisateur> </Service_3> </Direction_3> <Direction_4> <Informations> </Informations> <Directeurs_1> <Informations> </Informations> <Utilisateur> <prenom>prenom9</prenom> <nom>nom9</nom> </Utilisateur> </Directeurs_1> <Service_1> <Informations> </Informations> <Utilisateur> <prenom>prenom10</prenom> <nom>nom10</nom> </Utilisateur> </Service_1> <Service_2> <Informations> </Informations> <Utilisateur> <prenom>prenom11</prenom> <nom>nom11</nom> </Utilisateur> </Service_2> <Service_3> <Informations> </Informations> <Utilisateur> <prenom>prenom12</prenom> <nom>nom12</nom> </Utilisateur> </Service_3> </Direction_4> <Pole_1> <Informations> </Informations> <DG_1> <Informations> </Informations> <Utilisateur> <prenom>prenom13</prenom> <nom>nom13</nom> </Utilisateur> <Utilisateur> <prenom>prenom14</prenom> <nom>nom14</nom> </Utilisateur> </DG_1> <Services_1> <Informations> </Informations> <Utilisateur> <prenom>prenom15</prenom> <nom>nom15</nom> </Utilisateur> <Utilisateur> <prenom>prenom16</prenom> <nom>nom16</nom> </Utilisateur> </Services_1> </Pole_1> </Administration_1> <Administration_2> <Direction_5> <Service_1> <Informations> </Informations> <Utilisateur> <prenom>prenom17</prenom> <nom>nom17</nom> </Utilisateur> </Service_1> <Service_2> <Informations> </Informations> <Utilisateur> <prenom>prenom18</prenom> <nom>nom18</nom> </Utilisateur> </Service_2> </Direction_5> <Direction_6> </Direction_6> </Administration_2> <Administration_3> <Direction_7> </Direction_7> <Direction_8> <Service_1> <Informations> </Informations> <Utilisateur> <prenom>prenom19</prenom> <nom>nom19</nom> </Utilisateur> </Service_1> <Service_2> <Informations> </Informations> <Utilisateur> <prenom>prenom20</prenom> <nom>nom20</nom> </Utilisateur> </Service_2> </Direction_8> </Administration_3> </Organigramme> '; $dom = new DOMDocument(); $dom->loadXML($cible); //$dom->load("orgab.xml"); $parent=$dom->firstChild->nodeName; ?> <!-----------------------------------------------------------------------------------------------------> <!------------------------------------------------------------------------------------------------------> <!---------------------- DIV 2 ---------------------------------------------------------> <div class="conteneur2"><div class="bloc2"> <?php print("<center><font size=\"3\" face=\"Arial\"><b>$parent</b></font></center></br>"); //<!------------------------------------------------------------------------------------------------->// $domliste = $dom->getElementsByTagName($parent); $tab_tag = array(); $i=0; if ($domliste->length == 1) { $elements = $domliste->item(0)->childNodes; //<!-------------------- Affichage ------------------------------------------------------------------->// foreach ($elements as $node ) { if ($node->nodeType == 1) $tab_tag[] = $node->nodeName; { if( $node->nodeName != "#text" ) { if( $node->nodeName != "Informations" ) { if( $node->nodeName != "membre_de" ) { echo '<center><font size=\"2\" face=\"Arial\">'; echo $node->nodeName; echo "</br>"; echo '</font></center>'; } } $i++; } } }//sortie de boucle //<!---------------- BOUCLE ------------------------------------------------------------------->// $mon_champ3 = isset($_POST['mon_champ3']) ? $_POST['mon_champ3'] : ''; echo '<center><form method="POST"> <select name="mon_champ3">'; foreach ($elements as $node ) { if ($node->nodeType == 1) $tab_tag[] = $node->nodeName; { if( $node->nodeName != "#text" ) { if( $node->nodeName != "Informations" ) { if( $node->nodeName != "membre_de" ) { echo '<option>'; echo utf8_decode($node->nodeName); echo "</br>"; echo'</option>'; } } $i++; } } }//sortie de boucle //<!------------------------------------------------------------------------------------------------->// echo '</select><input type="submit" value="OK1"/></form></center>'; echo "mon_champ3 ==> $mon_champ3"; } else {} ?> </div></div> <!-----------------------------------------------------------------------------------------------------> <!-----------------------------------------------------------------------------------------------------> <!-------------------------- DIV 1 -----------------------------------------------------> <center><div class="conteneur1"><div class="bloc1"> <?php if($parent=="Organigramme") { echo $parent; } else { echo $mon_champ; } ?> </div></div></center> <!-----------------------------------------------------------------------------------------------------> <!-----------------------------------------------------------------------------------------------------> <!------------------------------------------------------------------------------------------------------> <!---------------------- DIV 3 ---------------------------------------------------------> <div class="conteneur3"><div class="bloc3"> <?php print("<center><font size=\"3\" face=\"Arial\"><b>$mon_champ3</b></font></center></br>"); //<!------------------------------------------------------------------------------------------------->// $domliste = $dom->getElementsByTagName($mon_champ3); $tab_tag = array(); $i=0; if ($domliste->length == 1) { $elements = $domliste->item(0)->childNodes; //<!-------------------- Affichage ------------------------------------------------------------------->// foreach ($elements as $node ) { if ($node->nodeType == 1) $tab_tag[] = $node->nodeName; { if( $node->nodeName != "#text" ) { if( $node->nodeName != "Informations" ) { if( $node->nodeName != "membre_de" ) { echo '<center><font size=\"2\" face=\"Arial\">'; echo $node->nodeName; echo "</br>"; echo '</font></center>'; } } $i++; } } }//sortie de boucle //<!---------------- BOUCLE ------------------------------------------------------------------->// $mon_champ4 = isset($_POST['mon_champ4']) ? $_POST['mon_champ4'] : ''; echo '<center><form method="POST"> <select name="mon_champ4">'; foreach ($elements as $node ) { if ($node->nodeType == 1) $tab_tag[] = $node->nodeName; { if( $node->nodeName != "#text" ) { if( $node->nodeName != "Informations" ) { if( $node->nodeName != "membre_de" ) { echo '<option>'; echo utf8_decode($node->nodeName); echo "</br>"; echo'</option>'; } } $i++; } } }//sortie de boucle //<!------------------------------------------------------------------------------------------------->// echo '</select><input type="submit" value="OK2"/></form></center>'; echo "mon_champ4 ==> $mon_champ4"; } else {} ?> </div></div> </body> </html>
C'est du javascript qu'il te faut, ou alors un traitement PHP côté serveur.
Ca n'a rien à voir avec du XML.
Je te conseille donc de te rediriger vers les forums appropriés (PHP ou Javascript (auquel cas, poste le HTML généré et non le code PHP)).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager