Bonjour,

Je débute totalement en XML, je ne suis pas beaucoup plus avancée en PHP.
J'ai besoin pour mon stage de creer un formulaire en XML, de l'afficher en PHP (POO ), et de récuperer les données avec une base de donnée.


mon XML ressemble à ça :
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
 
<xml>
<questionnaire ID="700" nom="Ss">          
             <!-- question N°7 -->
             <question ID="7" table="" texte="...:" type="radio">
                <question ID="7.2.1" table="" texte="..." type="radio">
                    <question ID="7.3.1" table="" texte="..." type="yesno_condition" var="">
                        <question ID="7.4.1" table="" texte="..." type="texte" var="">
                        </question>
                    </question>
                    <question ID="7.3.2" table="" texte="..." type="yesno_condition" var="">
                        <question ID="7.4.2" table="" texte="..." type="texte" var="">
                        </question>
                    </question>
                    <question ID="7.3.3" table="" texte="..." type="yesno_condition" var="">
                        <question ID="7.4.3" table="" texte="" type="texte" var="">
                        </question>
                    </question>
                </question>
                <question ID="7.2.2" table="" var="" texte="" type="yesno_condition">
                            <tableau  ID="1.1" table="" type="array" texte="" >
                                <tableau  ID="1.1.1" table="" var="" type="texte"> 
                                </tableau>
                                <tableau  ID="1.1.2" table="" var="" type="">
                                </tableau>
                                <tableau  ID="1.1.3" table="" var="" type="texte"> 
                                </tableau>
                                <tableau  ID="1.1.4" table="" var="" type="time"> 
                                </tableau>
                                <tableau  ID="1.1.5" table="" var="" type="texte"> 
                                </tableau>
                                <tableau  ID="1.1.6" table="" var="" type="time"> 
                                </tableau>
                                <tableau  ID="1.1.7" table="" var="" type="texte"> 
                                </tableau>
                                <tableau  ID="1.1.8" table="" var="" type="time"> 
                                </tableau>
                            </tableau>        
                </question>            
                <question ID="7.2.3" table=""  var="" type="yesno_condition" texte="">
                            <tableau  ID="1.2" texte="">
                                <tableau  ID="1.2.1" table="" var="" type="texte"> <div style="margin-left:40px"><div style="margin-left:40px"><div style="margin-left:40px"><div style="margin-left:40px">
.
.
.
.
.
.</div></div></div></div>.ETC....
                                </tableau>
                            </tableau>
                </question>                    
                <question ID="7.2.4" table="" texte="" type="radio">
                    <question ID="7.3.4" table="" var="" type="yesno_condition" texte="">
                        <question ID="7.4.4" table="" var="" texte="" type="texte">
                        </question>
                    </question>
                    <question ID="7.3.5" table="" var="" type="" texte="">
                        <question ID="7.4.5" table="" var="" texte="" type="texte">
 
                        </question>
                    </question>
                </question>
            </question>
    </questionnaire>
</xml>
Bref, un code XML avec plusieures balises imbriquées, qui doivent sortir sous forme de texte ou de tableau.

J'ai commencé à afficher le tout avec simpleXML, mais je bloque completement sur les boucles. Je n'ai absolument rien automatisé.

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
 
<?php
include ('classe.php');
$xml = simplexml_load_file('data.xml');
// questionnaire n°7
        foreach ($xml->questionnaire[0]->question[0]->attributes() as $a => $b) 
        {
            if ($a =="texte" OR $a =="reponse")
            {
            echo utf8_decode($b),"\n";
            }            
        }
?>
<br>
<?php
            foreach($xml->questionnaire[0]->question[0]->question[0]->attributes() as $a => $b) 
            {
            if ($a =="texte"  OR $a =="reponse" ){
            echo utf8_decode($b),"\n";}
            }
?>
<br>
<?php
                        foreach($xml->questionnaire[0]->question[0]->question[0]->question[0]->attributes() as $a => $b) 
                        {
            if ($a =="texte"  OR $a =="reponse" ){
            echo utf8_decode($b),"\n";}
            }
?>
<br>
<?php                        
                            foreach($xml->questionnaire[0]->question[0]->question[0]->question[0]->question[0]->attributes() as $a => $b)
                            {
            if ($a =="texte"  OR $a =="reponse" ){
            echo utf8_decode($b),"\n";}
            }
?>
<br>
<?php                        
                            foreach($xml->questionnaire[0]->question[0]->question[0]->question[0]->question[1]->attributes() as $a => $b) 
                            {
            if ($a =="texte"  OR $a =="reponse" ){
            echo utf8_decode($b),"\n";}
            }
?>
<br>
<?php                            
                        foreach($xml->questionnaire[0]->question[0]->question[0]->tableau[1]->attributes() as $a => $b) 
                        {
            if ($a =="texte"  OR $a =="reponse" ){
            echo utf8_decode($b),"\n";}
            }
?>
<br>
<?php                        
                            foreach($xml->questionnaire[0]->question[0]->question[0]->question[1]->question[0]->attributes() as $a => $b) 
                            {
            if ($a =="texte"  OR $a =="reponse" ){
            echo utf8_decode($b),"\n";}
            }
?>
Quelqu'un pourrai m'expliquer comment essayer d'automatiser tout ça, sachant que j'ai pas mal de balises <questionnaire> dans mon script?
Ca fait un moment que je cherche, et mes essais pour afficher les child n'ont absolument pas été concluant.

Merci