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 :

Concevoir une feuille de style qui comprend plusieurs d'autres feuilles XSL-FO


Sujet :

XSL/XSLT/XPATH XML

  1. #21
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    il faut que t es feuilles a inclure soit sous cette forme :
    en gros que des template et le match des templates ça va être le select de tes for-each .... apres le traitement devrait être le même ...
    je vois pas trop ou est la difficulté .... essaye et si ca marche pas poste ton code ( celui des feuilles incluses ) ....

  2. #22
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    mon select du for:each comprend plusieurs select :
    pour les constantes :
    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
        <xsl:template name="constante" match="/">
            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                <fo:layout-master-set>
                     <fo:simple-page-master master-name="default-page" page-height="11in" page-width="8.5in" margin-left="0.1in" margin-right="0.013in" margin-top="0.01in" margin-bottom="0.1in">
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference="default-page">
                    <fo:flow flow-name="xsl-region-body">
                        <fo:block>
                            <fo:block>
                                <fo:block>
                                    <fo:inline font-size="16pt" font-weight="bold">
                                        <xsl:text>Liste des constantes utilisées :</xsl:text>
                                    </fo:inline>
                                </fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
     
                                    <xsl:for-each select="/data/datatable1[NATURE=4]">
                                         <fo:block>
                                                        <xsl:value-of select="CONSTANTE"/>
     
                                                        <xsl:text> Valeurs(s) : </xsl:text>
                                                        <xsl:value-of select="VALEUR_CONSTANTE"/>
    													 </fo:block>
     
                                    </xsl:for-each>
    								<fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                </fo:block>
                            </fo:block>
                        </fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
        </xsl:template>
    </xsl:stylesheet>
    pour les variable c'est la meme chose y à que la nature qui change .

  3. #23
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    mon select du for:each comprend plusieurs select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:for-each select="/data/datatable1[NATURE=4]">
    ah bon ? ?????

    donc pour remplacer ton for-each par un template :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:for-each select="/data/datatable1[NATURE=4]">............. blablabla
    </xsl:for-each>
    devient
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <xsl:template match="/data/datatable1[NATURE=4]">
    .............. avec le meme blablabla 
    </xsl:template>

  4. #24
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    SVP j'ai essayé de remplacer ça mais j'ai exécuté les feuilles toutes seule ça ma ramene tous les champs du fichier XML et ça ne format pas le model tel qu'il etait ? !

  5. #25
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    mets le code stp

  6. #26
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    Citation Envoyé par laurentibus Voir le message
    mets le code stp
    voici ce que j'ai fais !

    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
     
            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                <fo:layout-master-set>
                     <fo:simple-page-master master-name="default-page" page-height="11in" page-width="8.5in" margin-left="0.1in" margin-right="0.013in" margin-top="0.01in" margin-bottom="0.1in">
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference="default-page">
                    <fo:flow flow-name="xsl-region-body">
                        <fo:block>
                            <fo:block>
                                <fo:block>
                                    <fo:inline font-size="16pt" font-weight="bold">
                                        <xsl:text>Liste des constantes utilisées :</xsl:text>
                                    </fo:inline>
                                </fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
     
                                    <<xsl:template match="data/datatable1[NATURE=4]">
                                         <fo:block>
                                                        <xsl:value-of select="CONSTANTE"/>
     
                                                        <xsl:text> Valeurs(s) : </xsl:text>
                                                        <xsl:value-of select="VALEUR_CONSTANTE"/>
    													 </fo:block>
     
                                    </xsl:template>
    								<fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                </fo:block>
                            </fo:block>
                        </fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
     
    </xsl:stylesheet>

  7. #27
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    bon deja fait attention tu as un "<" en trop :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    !!!!!!!!!!!!!!!<!!!!!!!!!<xsl:template match="data/datatable1[NATURE=4]">
    <fo:block>
    <xsl:value-of select="CONSTANTE"/>
    <xsl:text> Valeurs(s) : </xsl:text>
     <xsl:value-of select="VALEUR_CONSTANTE"/>											 </fo:block>
    </xsl:template>
    ensuite fais voir ton XML stp ou du moins les balise datatable1 et ses enfants ... et un cas complet

  8. #28
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    SVP vous pouvez me donner une adresse mail je vous donne le fichier source XML et les deux feuilles de style :
    je peux pas mettre tout sur internet
    desolé.

  9. #29
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    je demander juste une arborescence type ..... pas besoin du doc entier ....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template match="data/datatable1[NATURE=4]">
    <fo:block>
    <xsl:value-of select="./CONSTANTE"/>
    <xsl:text> Valeurs(s) : </xsl:text>
     <xsl:value-of select="./VALEUR_CONSTANTE"/>											 </fo:block>
    </xsl:template>
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <xsl:template match="data/datatable1[NATURE=4]">
    <fo:block>
    <xsl:value-of select="./CONSTANTE/text()"/>
    <xsl:text> Valeurs(s) : </xsl:text>
     <xsl:value-of select="./VALEUR_CONSTANTE/text()"/>											 </fo:block>
    </xsl:template>
    ou si c'est des attributs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsl:template match="data/datatable1[NATURE=4]">
    <fo:block>
    <xsl:value-of select="./@CONSTANTE"/>
    <xsl:text> Valeurs(s) : </xsl:text>
     <xsl:value-of select="./@VALEUR_CONSTANTE"/>											 </fo:block>
    </xsl:template>

  10. #30
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    je vous donnes un exemple :
    voici le fichier xml il 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
    <DATA>
      <DATA_VAR>
        <DATA_CODE>2562</DATA_CODE>
        <DATA_NOM_XML>&lt;math&gt;&lt;mi&gt;Codif&lt;/mi&gt;&lt;/math&gt;</DATA_NOM_XML>
        <DATA_LIB>Codification</DATA_LIB>
        <DATA_NATURE>2</DATA_NATURE>
        <DATA_HASH>Codif</DATA_HASH>
        <DATA_NCOL>1</DATA_NCOL>
      </DATA_VAR>
      <DATA_VAR>
        <DATA_CODE>2563</DATA_CODE>
        <DATA_NOM_XML>&lt;math&gt;&lt;mi&gt;Codif&lt;/mi&gt;&lt;/math&gt;</DATA_NOM_XML>
        <DATA_LIB>Codification 1</DATA_LIB>
        <DATA_NATURE>2</DATA_NATURE>
        <DATA_HASH>Codif</DATA_HASH>
        <DATA_NCOL>1</DATA_NCOL>
      </DATA_VAR>
      <DATA_VAR>
        <DATA_CODE>2564</DATA_CODE>
        <DATA_NOM_XML>&lt;math&gt;&lt;mi&gt;Codif&lt;/mi&gt;&lt;/math&gt;</DATA_NOM_XML>
        <DATA_LIB>Codification 2</DATA_LIB>
        <DATA_NATURE>2</DATA_NATURE>
        <DATA_HASH>Codif</DATA_HASH>
        <DATA_NCOL>1</DATA_NCOL>
      </DATA_VAR>
      <DATA_VAR>
        <DATA_CODE>2565</DATA_CODE>
        <DATA_NOM_XML>&lt;math&gt;&lt;mi&gt;Codif&lt;/mi&gt;&lt;/math&gt;</DATA_NOM_XML>
        <DATA_LIB>Codification 3</DATA_LIB>
        <DATA_NATURE>3</DATA_NATURE>
        <DATA_HASH>Codif</DATA_HASH>
        <DATA_NCOL>1</DATA_NCOL>
      </DATA_VAR>
      <DATA_VAR>
        <DATA_CODE>2566</DATA_CODE>
        <DATA_NOM_XML>&lt;math&gt;&lt;mi&gt;Codif&lt;/mi&gt;&lt;/math&gt;</DATA_NOM_XML>
        <DATA_LIB>Codification 4</DATA_LIB>
        <DATA_NATURE>3</DATA_NATURE>
        <DATA_HASH>Codif</DATA_HASH>
        <DATA_NCOL>1</DATA_NCOL>
    </DATA_VAR>
      </DATA>
    voici un exemple de feuille de style:
    1- liste des constantes :
    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
        <xsl:template match="/">
            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                <fo:layout-master-set>
                    <fo:simple-page-master master-name="default-page" page-height="11in" page-width="8.5in" margin-left="0.6in" margin-right="0.6in" margin-top="0.79in" margin-bottom="0.79in">
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference="default-page">
                    <fo:flow flow-name="xsl-region-body">
                        <fo:block>
                            <fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
                                    <fo:inline font-weight="bold">
                                        <xsl:text>liste des constante :</xsl:text>
                                    </fo:inline>
                                </fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
                                    <xsl:for-each select="/DATA/DATA_VAR[DATA_NATURE=3]">
                                        <xsl:variable name="DATA_VAR" select="."/>
                                        <fo:block>
                                            <fo:block>
                                                <fo:block>
                                                    <xsl:value-of select="DATA_LIB"/>
                                                </fo:block>
                                            </fo:block>
                                        </fo:block>
                                    </xsl:for-each>
                                </fo:block>
                            </fo:block>
                        </fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
        </xsl:template>
    </xsl:stylesheet>
    2- liste de variables:
    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
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
        <xsl:template match="/">
            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                <fo:layout-master-set>
                    <fo:simple-page-master master-name="default-page" page-height="11in" page-width="8.5in" margin-left="0.6in" margin-right="0.6in" margin-top="0.79in" margin-bottom="0.79in">
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference="default-page">
                    <fo:flow flow-name="xsl-region-body">
                        <fo:block>
                            <fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
                                    <fo:inline font-weight="bold">
                                        <xsl:text>liste des variables :</xsl:text>
                                    </fo:inline>
                                </fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
                                    <xsl:for-each select="/DATA/DATA_VAR[DATA_NATURE=2]">
                                        <xsl:variable name="DATA_VAR" select="."/>
                                        <fo:block>
                                            <fo:block>
                                                <fo:block>
                                                    <xsl:value-of select="DATA_LIB"/>
                                                </fo:block>
                                            </fo:block>
                                        </fo:block>
                                    </xsl:for-each>
                                </fo:block>
                            </fo:block>
                        </fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
        </xsl:template>
    </xsl:stylesheet>
    c'est juste un exemple sachant qu'il à plusieurs liens avec d'autre table, c'est juste pour comprendre le principe.
    merci 10000 fois

  11. #31
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    a la place de liste constantes :
    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
     
    <?xml version="1.0"?>
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
        <xsl:template match="/">
            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
                <fo:layout-master-set>
                    <fo:simple-page-master master-name="default-page" page-height="11in" page-width="8.5in" margin-left="0.6in" margin-right="0.6in" margin-top="0.79in" margin-bottom="0.79in">
                        <fo:region-body/>
                    </fo:simple-page-master>
                </fo:layout-master-set>
                <fo:page-sequence master-reference="default-page">
                    <fo:flow flow-name="xsl-region-body">
                        <fo:block>
     
    						<xsl:template match="//DATA/DATA_VAR[DATA_NATURE=3]">
                                <xsl:value-of select="./DATA_LIB/text()"/>
    						</xsl:template>
     
    					</fo:block>
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
        </xsl:template>
    </xsl:stylesheet>
    marche ???

    ps: je ne travaille pas habituellement avex fo mais a quoi serrvent tout ces block ??

  12. #32
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    y à une erreur de type :
    fo:block must not contain an xsl:template element !

  13. #33
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    ben enlève la balise englobante fo:block

  14. #34
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    ça marche pas j'ai essayé de viré tout, mais à chaque fois il me demander de ne pas mettre xsl:template à l'intérieur des balises de fo:
    est ce que ça marche pas en XSL-FO ?

  15. #35
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Points : 1 610
    Points
    1 610
    Par défaut
    Un xsl:template ne peut en contenir un autre.

    Il faut que tu comprennes la notion de template et de XSL-T avant même de vouloir faire du XSL-FO.
    tarekos, plus on t'aide, plus tu essaies de faire des choses complexes, mélant de plus en plus de techno, sans avoir compris les bases du XSLT et du XML seul, ça ne te menera nullepart.
    Achete un bouquin, passe du temps sur les faq et les exemples, prends des cours, enfin, ça ne reste qu'un conseil.

  16. #36
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    aucune idée moi j'utilise xsl tout court ....

  17. #37
    Débutant  
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 60
    Points
    60
    Par défaut
    sinon y à pas autre possibilité d'assembler plusieurs feuilles de styles en une ? !
    merci bien comme meme si vous n'avez pas de reponse!

Discussions similaires

  1. Une requête en JOINTURE qui renvoi plusieurs arrays
    Par Magnat dans le forum Requêtes
    Réponses: 7
    Dernier message: 10/05/2010, 23h03
  2. Réponses: 1
    Dernier message: 20/11/2008, 02h17
  3. application qui comprend plusieur aplication avec flash
    Par piratack007 dans le forum Flash
    Réponses: 2
    Dernier message: 18/02/2008, 11h24
  4. compilation d'une appli qui comprend plusieurs projets
    Par r0d dans le forum Code::Blocks
    Réponses: 7
    Dernier message: 17/01/2008, 12h40
  5. Réponses: 1
    Dernier message: 15/04/2007, 20h09

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