Bonjour,
Le 29/03/2016 15:33, o2 a écrit :
Merci pour cette réponse, j'ai essayé effectivement avant de mettre mon
post mais sans succès
Je les mets où dans mon code dans ce cas ces lignes ?
Difficile à dire par rapport à votre code dont je ne sais pas exactement ce qu'il fait. Si j'étais vous je démarrerai ces 3 nouvelles boucles, bien sûr en les fermant correctement, en dehors de toute autre boucle sur votre page et bien sûr aussi en ajoutant des affichages dedans, par ex (non testé, difficile sans les données ...). La boucle niv2 ne sert qu'à fournir le #VALEUR{children/session} à celle de niveau 3. De mémoire il me semble que ça marchait mieux en utilisant simplexml comme type de source mais je n'arrive plus à me souvenir si cela nécessitait d'installer quelque chose. Je ne crois pas. Pensez aussi à changer la source xml dans mon code qui devrait produire une liste de titre des intitulés de stage avec des sous-listes contenant les dates de début de chaque session. Si ça marche 
Comme je le disais dans mon message sur la liste, 490 heures d'essais ....
<B_niv1>
<ul>
<BOUCLE_niv1 (DATA) {source simplexml, http://urlvers/syndic.xml\}{datapath root/children/stage}>
<li>
<h4>[(#VALEUR{children/intitule/0/text})]</h4>
<BOUCLE_niv2 (DATA) {source table, #VALEUR{children/sessions}}>
<B_niv3>
<ul>
<BOUCLE_niv3 (DATA) {source table, #VALEUR{children/session}}>
<li><h5>[(#VALEUR{children/date/0/text})]</h5></li>
</BOUCLE_niv3>
</ul>
</B_niv3>
</BOUCLE_niv2>
</li>
</BOUCLE_niv1>
</ul>
</B_niv1>
Le 29 mars 2016 à 15:27, Zapilou <csi@zapilou.com
<mailto:csi@zapilou.com>> a écrit :
Bonjour,
Si j'essaye d'appliquer ma solution à votre structure, je dirai un
truc du genre:
<BOUCLE_niv1 (DATA) {source simplexml, http://urlvers/syndic.xml\}
{datapath root/children/stage}>
<BOUCLE_niv2 (DATA) {source table, #VALEUR{children/sessions}}>
<BOUCLE_niv3 (DATA) {source table, #VALEUR{children/session}}>
Je ne crée pas de table (pour les source table), c'est le résultat
de la première boucle #VALEUR{children/sessions} qui est une table
pour la seconde boucle
Idem au niveau suivant. Bien garder les "children" qui désignent
l'enfant "sessions" puis l'enfant "session".
Le 29/03/2016 15:11, o2 a écrit :
Bonjour
Je récupère d'un fichier xml les fiches de stages pour les faire
afficher sur le site en fonction de la thématique du stage. Or
quand il
y a plusieurs sessions à un stage (sessions -> session), cela ne
m'affiche que la première session et pas les suivantes.
Quelqu'un pourrait il m'aider faire afficher toutes les sessions
? C'est
variable selon les fiches de stages, il peut y en avoir qu'une ou
plusieurs, c'est aléatoire.
Il y avait eu un post de Zapilou en septembre qui avait réussi il me
semble, mais je n'arrive pas à l'appliquer... (je me permets de vous
mettre en copie
) ?
Merci de votre aide !
o2
J'ai un fichier xml qui est structuré de cette façon (gestion de
fiches
de stages) :
- programme
- stage
- thematiques
- thematique
/thematiques
- id
- intitule
- objectif
- sessions
- session (variable selon le nombre de session par stage)
- id
- date
- datefin
/session
- session (x fois si besoin)
- id
- date
- datefin
/session
/sessions
- publics
/stage
et ça c'est mon code dans le fichier html = (je trie mes données
par la
thématique (affectation d'un mot clé à l'article par variable : cela
n'affiche que les stages de la thématique en question)
[(#REM) Boucle créant le tableau ]
#SET{hs, #ARRAY}
<BOUCLE_xml(DATA){source xml, monlienxml}>
[(#VALEUR{0/thematiques/0/thematique/0}|=={[(#TITRE_MOT|textebrut)]}|oui)
#SET{hs, #GET{hs}|array_merge{
#ARRAY{
#VALEUR{0/intitule/0},
#ARRAY{
objectifs,#VALEUR{0/objectifs/0},
date,#VALEUR{0/sessions/0/session/0/date/0},
datefin,#VALEUR{0/sessions/0/session/0/datefin/0},
horairesdeb,#VALEUR{0/sessions/0/session/0/horairesdeb/0},
horairesfin,#VALEUR{0/sessions/0/session/0/horairesfin/0},
}
}
}
}
]
</BOUCLE_xml>
[(#REM) affichage des données ]
<BOUCLE_hs(DATA){source table, #GET{hs}}{par cle}>
#BLOC_TITRE
<strong>#CLE</strong>
#BLOC_DEBUT
Objectifs : #VALEUR{objectifs}
Prochaine session :
<strong>Date Début :</strong> #VALEUR{date}
<strong>Date Fin : #VALEUR{datefin}
<strong>Horaires :</strong> #VALEUR{horairesdeb} /
#VALEUR{horairesfin}
#BLOC_FIN
</BOUCLE_hs>
--
Pierre
--
Pierre