IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSL-FO][FOP] Mise en page


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut [XSL-FO][FOP] Mise en page
    Bonjour,

    j'ai (encore) un problème par rapport à ma mise en page de mon Pdf via le fichier xsl.

    En effet, j'ai un fichier XML comme ceci :
    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
     
    <FICHE_DESCRIPTIVE>
      <ENTETE>entete.JPG</ENTETE>
      <PIEDPAGE>piedPage.JPEG</PIEDPAGE>
      <FICHE>
        <INFORMATIONS>
          <TABLE>Table1</TABLE>
          <VARIABLE>Var1</VARIABLE>
        </INFORMATIONS>
        <NOM>Test</NOM>
        <CODE>Var1</CODE>
        <TABLE>Table1</TABLE>
        <DESCRIPTION/>
      </FICHE>
      <FICHE>
        <INFORMATIONS>
          <TABLE>TEST</TABLE>
          <VARIABLE>DTEST</VARIABLE>
        </INFORMATIONS>
        <NOM>Date TEST</NOM>
        <CODE>DTEST</CODE>
        <TABLE>TEST</TABLE>
        <DESCRIPTION/>
      </FICHE>
    </FICHE_DESCRIPTIVE>
    Et j'aimerai que mon sommaire ressemble à un truc du genre :

    Nom de la table1
    Variable1
    Variable2
    Variable3

    Nom de la table2
    Variable4



    En gros tant que le nom de la table est la même, il ne met que les variables et si le nom de la table change il rajoute le nom de la table.

    J'ai fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <fo:table-cell number-columns-spanned="2">
    		<xsl:for-each select="//INFORMATIONS">
    			<xsl:if test="TABLE!=TABLE">
    		<fo:block font-size="12pt" font-weight="bold" text-align="justify" text-align-last="justify" >
    			<fo:inline font-size="500%" vertical-align="sub" color="#027a5f">&#xB7;</fo:inline><xsl:value-of select="TABLE"/><fo:leader leader-pattern="dots"/><fo:page-number-citation ref-id="{generate-id(.)}"/>
    		</fo:block>
    			</xsl:if>
    			<fo:block text-indent="1cm" font-size="10pt" text-align="justify" text-align-last="justify" >
    					<fo:basic-link internal-destination="{generate-id(.)}"><fo:inline font-size="300%" vertical-align="sub" color="#027a5f"></fo:inline><xsl:value-of select="VARIABLE"/><fo:leader leader-pattern="dots"/><fo:page-number-citation ref-id="{generate-id(.)}"/></fo:basic-link>
    			</fo:block>
    		</xsl:for-each>
    		</fo:table-cell>
    Cependant, cela ne me donne pas le résultat voulu !

    Si des personnes pouvaient m'aider... Merci par avance !

  2. #2
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 372
    Points
    2 372
    Par défaut
    Bonjour toMuch,

    En gros tant que le nom de la table est la même, il ne met que les variables et si le nom de la table change il rajoute le nom de la table.
    Cela provient du code : En fait, pour chaque élément INFORMATIONS,
    on écrit la valeur de l'élément TABLE,
    puis pour chaque élément VARIABLE fils de l'élément INFORMATIONS,
    on écrit la valeur de l'élément VARIABLE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <xsl:for-each select="//INFORMATIONS">
       <xsl:value-of select="TABLE"/>
      <xsl:for-each select=".//VARIABLE">
         <xsl:value-of select="."/>
      </xsl:for-each>
    </xsl:for-each>

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    Bonjour polymorphisme,

    désolé de t'avoir répondu si tard mais j'ai tellement de choses à faire que je n'ai pas touché au problème jusqu'à aujourdh'ui.

    Aussi, quand je dis :

    En gros tant que le nom de la table est la même, il ne met que les variables et si le nom de la table change il rajoute le nom de la table.
    C'est ce que je souhaite obtenir. Cependant ma "fonction"/"code" :

    TABLE!=TABLE
    ne fonctionne pas. Je n'obtiens pas ce que je souhaite.

    J'ai essayé ta méthode mais ce n'est pas ça en fait. Je ne veux pas qu'il y ait une répétition des noms de table. Si elle est inscrite, je ne veux plus qu'elle apparaisse par la suite.

    Je veux :

    Nom de la table1
    Variable1
    Variable2
    Variable3

    Nom de la table2
    Variable4
    et pour l'instant, j'obtiens :

    Nom de la table1
    Variable1
    Nom de la table1
    Variable2
    Nom de la table1
    Variable3

    Nom de la table2
    Variable4


    ce que je ne souhaite pas.

    Merci pour votre aide.

  4. #4
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 372
    Points
    2 372
    Par défaut
    Bonjour,

    merci de relire et de réfléchir au sujet des derniers posts de cette discusion.

    J'ai essayé ta méthode mais ce n'est pas ça en fait.
    Alors, vérifie ce que tu as fait !

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    C'est pas un cas typique de rassemblement par nom ?
    Encore une méthode Muench, je pense.

    (Je vois pas trop quel était le but de faire TABLE!=TABLE. Pour info, cette expression sera toujours false. Une expression ne peut pas être différente d'elle-même. [Mais il arrive parfois qu'elle ne soit pas égale non plus à elle-même])

  6. #6
    Membre émérite
    Avatar de polymorphisme
    Homme Profil pro
    Publishing
    Inscrit en
    Octobre 2009
    Messages
    1 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Publishing
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Points : 2 372
    Points
    2 372
    Par défaut
    Le problème c'est que son fichier exemple exemple admet plusieurs généralisations possibles.

    Voici, celle qui n'était venue en tête :

    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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <FICHE_DESCRIPTIVE>
      <ENTETE>entete.JPG</ENTETE>
      <PIEDPAGE>piedPage.JPEG</PIEDPAGE>
      <FICHE>
        <INFORMATIONS>
          <TABLE>Table1</TABLE>
          <VARIABLE>Var1</VARIABLE>
          <VARIABLE>Var2</VARIABLE>
          <VARIABLE>Var3</VARIABLE>           
        </INFORMATIONS>
        <NOM>Test</NOM>
        <CODE>Var1</CODE>
        <TABLE>Table1</TABLE>
        <DESCRIPTION/>
      </FICHE>
      <FICHE>
        <INFORMATIONS>
          <TABLE>TEST</TABLE>
          <VARIABLE>DTEST1</VARIABLE>
          <VARIABLE>DTEST2</VARIABLE>      
        </INFORMATIONS>
        <NOM>Date TEST</NOM>
        <CODE>DTEST</CODE>
        <TABLE>TEST</TABLE>
        <DESCRIPTION/>
      </FICHE>
    </FICHE_DESCRIPTIVE>
    Avec la feuille de style qui va bien avec :

    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="UTF-8"?>
     
    <xsl:stylesheet version="1.0"
    	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    	<xsl:template match="/">
    		<root>
    			<xsl:for-each select="//INFORMATIONS">
    				<table><xsl:value-of select="TABLE" /></table>
     
    				<xsl:for-each select=".//VARIABLE">
    					<variable><xsl:value-of select="." /></variable>
    				</xsl:for-each>
    			</xsl:for-each>
    		</root>
    	</xsl:template>
     
    </xsl:stylesheet>
    On obtient bien la structure demandée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?xml version="1.0" encoding="UTF-8"?>
     
    <root>
     
    <table>Table1</table>
    <variable>Var1</variable>
    <variable>Var2</variable>
    <variable>Var3</variable>
     
    <table>TEST</table>
    <variable>DTEST1</variable>
    <variable>DTEST2</variable>
     
    </root>

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 33
    Points
    33
    Par défaut
    J'ai beau tourné dans tous les sens, je n'ai pas réussi à faire ce que je souhaitais. Je vais voir d'un pu plus près ce que vous venez de poster.

    Il faut savoir que je pars d'un fichier xml déjà préalablement formé pour mettre en page mon Pdf via xsl-fo.

    Mais, bon, je vous remercie quand même pour votre aide.

Discussions similaires

  1. [XSL-FO] [FOP] Problèmes de mise en page
    Par Rémy DEV dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 25/06/2015, 14h25
  2. [FOP] Mise en page
    Par jdriele dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 06/07/2009, 16h19
  3. [xsl-fo]Problème Mise en page tableau dynamique
    Par Little_flower dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 21/05/2007, 14h01
  4. XSL FO/quelque probleme pour la mise en page.
    Par atoila dans le forum XSL/XSLT/XPATH
    Réponses: 10
    Dernier message: 08/06/2006, 11h06
  5. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo