|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() |
Alors voilà, je voudrais afficher un tableau.
Déjà le contenu n'est pas entièrement dans le xml: j'ai 1 fois le texte dans mon xml et je veux l'afficher plusieurs fois. Jusque là il suffirait de créer un template et de l'afficher le nombre de fois necessaires. Mais là où ça devient vraiment coton, c'est que ce nombre de fois où je veux afficher le texte n'est pas fixe: en fonction d'un paramètre, je vais afficher 2 lignes de 3 colonnes, 3 lignes de 3 colonnes etc. Premier réflexe, boucle for. Heu bon ça va, je sais xml c'est pas de la programmation machin... Donc maintenant j'en suis là: Code :
Code :
<xsl:call-template name="boucle_etq"><xsl:with-param name="i" select="10"/></xsl:call-template>
Code :
Ok c'est bon. Sauf que nb_lignes je l'avais mis à 15 pour l'instant, histoire que ça fonctionne déjà ça, mais j'arrive pas à lui expliquer maintenant que nb_lignes va venir de mon xml, je lui colle un value-of ben rien du tout... En plsu actuellement ln_lignes vaut 15 et il fait 5 lignes... En même temps c'est ce que je voulais, puisque mon but à l'origine c'est d'avoir le nombre de texte div 3 pour savoir les lignes, mais là je ne lui ai pas demandé et ça m'étonnerait qu'il l'ait pigé tout seul, que c'est ce que je voulais...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() |
eh oui, le XSL ce n'est pas de la programmation impérative, mais fonctionnelle.
donc tu fais fausse route en faisant ca. il faut que tu génère autant de fois ta donnée XML sur laquelle la template va matcher autant de fois que l'element est présent donc faire le nombre de ligne que tu désires.
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() |
Non ça c'est pas possible, j'ai essayé mais c'est trop monstreux comme fichier xml. En plus au niveau de la requête, vu que le nombre de lignes que je veux vient d'une autre requête, j'imagine même pas comment je devrais les imbriquer...
Mon code fonctionne, sauf que j'en ai pas le nombre que je demande: je vois bien qu'il boucle sur lui même mais j'arrive pas à trouver la formule: il ne m'en affiche pas le double, il ne m'en affiche pas le nombre +1... Edit: Apparemment qd je donne nb_lignes=15, il fait 5, pour 16, 6, pour 20, 10 etc... Pourquoi fait-il nb_ligne -10? Je me doute bien que c'est moi qui le lui ait demandé, mais là je vois pas où c'est...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#4 | |
|
Membre Expert
![]() |
Citation:
peux-tu me décrire ce que tu fais et ce que tu veux obtenir peut etre que l'on peut trouver une solution alternative pour obtenir le meme résultat. ca fait des années que je fais du XSL et je n'ai jamais eu besoinde faire une boucle for !
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() |
Ben en fait, dans une première table, je récupère le nom et le prénom de l'étudiant et dans une autre, son numéro d'Anonymat en clair et en transcodé (avec une police de code barres) = ma première requête
Dans une autre table encore, la session, l'étape et l'épreuve = ma 2ème requête requête Enfin dans une denrière, le nombre d'épreuves auxquelles l'étudiant doit participer = ma dernière requête Donc pour lier, il faudrait lier le nombre d'épreuves auxquelles le candidat doit participer avec son numéro d'anonymat, puisque c'est ce numéro que je veux afficher nombre d'épreuve +1 pour imprimer la planche d'étiquettes Or si la requête pour récupérer l'étudiant est assez simple, celle pour compter les épreuves est déjà assez complexe (2 select imbriqués, environ 20 lignes de condition en WHERE D'autre part, à l'origine on m'a demandé de faire une boucle parce que le but est que le fichier xml soit le plus léger possible vu que plusieurs personnes font plusieurs requêtes sur le même serveur en même temps et qu'on veut minimiser le temps d'attente. On a fait des tests ce matin, c'est peut-être pas si significatif que ça, mais j'en reviens toujours au même problème que je ne sais pas modifier ces requêtes correctement...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() |
Argh!
Je sors, je dis plus rien... l'andouille que je suis avait collé "10" comme valeur à "i" dans l'appel, tu m'étonnes que j'en avais 10 de moins, quelle cruche! Bon ok ben maintenant j'ai collé un div 3 pour avoir ma variable comme nombre de ligne et voilà, c'est super ça fonctionne! Oui RDM, la boucle for n'est sans doute pas la solution la plus logique dans la philosophie xml, mais c'est ce qu'on m'a demandé...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() |
au passage le temps passé sera surtout à executer la requête SQL que de générer le document XML...
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() |
Oui c'est vrai mais bon en fait j'associe les deux au sens où lorsque ma requête est trop mal faite, il ne me génère même pas le xml (oui je t'assure, ça m'est déjà arrivé, au bout de 15 secondes il a abandonné et j'avais oublié où ça se réglait, alors j'ai optimisé, heu pardon j'ai fait optimiser ma requête...
Disons qu'en fait à terme il peut y avoir 6000 étudiants alors ça fait un peu monstrueux...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
|
|
#9 | |
|
Nouveau Membre du Club
![]() |
Et sinon, RDM, merci pour ta magnifique phrase que je vais coller dans mon rapport de stage, parce que franchement ça en jette:
Citation:
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() |
tu peux rajouter que c'est de type fonctionnelle pure se rapprochant d'Haskell
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#11 | |
|
Nouveau Membre du Club
![]() |
Heu... Attends je vais chercher qui est ce Haskell d'abord
Citation:
C'est quoi les graphes...? Nan je veux bien mettre des mots pour faire classe, mais si je les comprends pas niet... ;-)
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() |
hmmm, là ca se complique, tu entres dans le monde du fonctionnel et du lambda calcul. mais pour résumé, l'evaluation des expressions dans un langages fonctionnel pout se représenter par un arbre. L'exemple le plus parlant est l'evaluation de la suite de Fibonacci. en evaluation fonctionnelle classique on remarque que l'on calcul plsuieurs fois les memes branches. Les langages comme Haskell, construise en fait un graphe (au passage un arbre est un graphe particulier) pour eviter de recalculer des termes qui sont présents a différents niveaux dans l'arbre.
sinon pour les graphes en eux meme: http://fr.wikipedia.org/wiki/Th%C3%A9orie_des_graphes ca fait parti des cours classiques d'algorithmie.
__________________
RDM Tout Est Relatif Rubrique XMLRAD: http://xmlrad.developpez.com FAQ XMLRAD: http://xmlrad.developpez.com/faq/ |
|
|
00
|
|
|
#13 |
|
Nouveau Membre du Club
![]() |
Heu...
__________________
Il existe 10 catégories de gens. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas... |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com