Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1052 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [Résolu] Comment présenter 4 par 4 des éléments?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Comment présenter 4 par 4 des éléments?

n°2129099
rufo
Pas me confondre avec Lycos!
Posté le 01-03-2012 à 14:07:12  profilanswer
 

Bonjour,
 
Voilà, je cherche à afficher 4 par 4 des éléments d'un fichier XML (pour l'ex, on va dire des livres) en HTML via une transformation XSLT. La structure du XML ressemble à ça :

Code :
  1. <listlivres>
  2.  <livre>
  3.    <titre>Titre livre 1</titre>
  4.    <auteur>...</auteur>
  5.  </livre>
  6.  <livre>
  7.    <titre>Titre livre 2</titre>
  8.    <auteur>...</auteur>
  9.  </livre>
  10.  <livre>
  11.    <titre>Titre livre 3</titre>
  12.    <auteur>...</auteur>
  13.  </livre>
  14.  <livre>
  15.    <titre>Titre livre 4</titre>
  16.    <auteur>...</auteur>
  17.  </livre>
  18.  <livre>
  19.    <titre>Titre livre 5</titre>
  20.    <auteur>...</auteur>
  21.  </livre>
  22. ...
  23. </listlivres>


 
Par ailleurs, comme le fichier HTML résultant est destiné à être converti en PDF, je veux faire en sorte qu'après 4 livres affichés, il y ait un saut de page (pour l'impression) et que sur la page suivante, on recommence à afficher 4 livres.
 
Je suis parti sur l'idée d'un tableau de 2 lignes et 2 colonnes. J'ai déjà trouvé comment faire pour gérer le cas où il manque 1 livre pour compléter une ligne (je me une case vide).
 
Mon pb est le suivant : je sais pas comment faire en XSL pour avoir le test : SI position() mod 4 = 1 ALORS afficher <table> FIN SI
Et plus loin, faire SI position() mod 4 = 0 OU position() = last() ALORS </table> FIN SI.
 
En effet, le parser de xslt râle parce que le tag <table> n'est pas fermé dans le premier test et le tag </table> n'est pas ouvert dans le second test.
 
Une idée de comment faire pour ouvrir un tableau ou le refermer sur un test en XSL, svp?
 
Merci :)


Message édité par rufo le 01-03-2012 à 14:21:32

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
mood
Publicité
Posté le 01-03-2012 à 14:07:12  profilanswer
 

n°2129103
rufo
Pas me confondre avec Lycos!
Posté le 01-03-2012 à 14:23:14  profilanswer
 

Bon, en fait, j'ai trouvé la solution. Il suffit de faire dasn le 1er test :
<xsl:text disable-output-escaping="yes">&lt;table&gt;</xsl:text>
 
Et dans le second :
<xsl:text disable-output-escaping="yes">&lt;/table&gt;</xsl:text>
 
Et zou : le parser est content et j'ai bien mon tableau de 4 par 4, sur chaque page de mon pdf final :)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [Résolu] Comment présenter 4 par 4 des éléments?

 

Sujets relatifs
Ordre de chargement des éléments d'une page webPython - Ajout d'éléments dans un tableau de dimension >2
Multiplier tous les éléments d'une listeTélécharger une page d'Adobe Presenter
Test des elements dans un tableauprobleme parser et regroupe des elements
une liste d'élements à manipuler en JSDeux colonnes, éléments à la même hauteur
récupérer tout les élements d'un tree[MySQL] Presenter des donnees en ligne en colonne
Plus de sujets relatifs à : [Résolu] Comment présenter 4 par 4 des éléments?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR