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 :

comment appeler un template !


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    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 comment appeler un template !
    bonjour je cherche comment appeler un templates dans un endoit precis comme suit :
    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
    <?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.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">
                      "je voudrais appeler le template dans cet endroit"
                        <fo:block>
                            <fo:block>
                                <fo:block>
                                    <fo:inline font-size="16pt" font-weight="bold">
                                        <xsl:text>Liste des clients :</xsl:text>
                                    </fo:inline>
                                </fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
                                    <xsl:for-each select="/file/personne[NATURE=4]">
                                                        <xsl:value-of select="PERS_LIB"/>
                                    </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>

    merci bien

  2. #2
    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
    d'après ce que j'ai vu sur le net en 3 min ..............
    y'à incompréhension totale la .....

    xsl:fo c'est pas pour appliquer des traitements de type :
    fonction, test, boucle ...... ça c'est du xsl ......

    xsl-fo concerne la mise en forme :
    XSL-FO - (XSL Formatting Objects) un langage qui peut être utilisé en XSLT dans le but de "présentation" de XML
    je pense qu'il te faudrait étudier les B.A.ba XSLT ..... c'est à dire Xpath, xsl, xsl-fo avant de te lancer sinon tu ne vas arriver a rien .... juste à une perte de temps ........

    ++

  3. #3
    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
    mais toutes les feuilles de styles qu j'ai fais dans mon projet jusqu'à maintenant est de feuille de style XSL-FO.
    je cherche juste un moyen pour assembler plusieurs feuilles de styles en une.
    est ce que c'est possible ?
    merci bien

  4. #4
    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
    En XSL-FO, ce serait possible si ton XSL-FO était généré par de jolis templates modulaire mais ceux que t'as fais c'est pas le cas.
    Toi t'as UN template unique pour la racine de ton xml source et des for-each qui te génére un DOCUMENT XSL-FO.
    Tu ce que pourras déclancher c'est sont documents entiers, or ça n'a pas de sens de coller bout à bout des documents. Je te le dis une dernière fois, assimile la notion de templates pour modulariser les feuille de style XSL-T avant même d'envisager une quelconque fusion du xsl-fo en sortie.
    Tu devrais réviser ça aussi.

    Sinon fusion les pdf en sortie avec pdfbox ou itext.
    Et arrete de créer plusieurs fois les mêmes sujets...

  5. #5
    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
    d'accord, ais si vous pouvez juste me donner un exemple de template modulaire !
    merci

  6. #6
    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

  7. #7
    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
    merci morbo beaucoupppppppppppppppppppp.

  8. #8
    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
    j'ai oublié de vous dire une chose.
    le principe est ne pas d'appeler juste un module de ma feuille de style, c'est bien d'appeler toute la feuille de style:
    exemple : f1 = liste de client
    f2 : liste des fournisseurs
    et le resultat c'est f1+f2
    C.A.D une feuille de style qui assemble les 2 autres feuilles de styles !

  9. #9
    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
    bonjour..
    j'ai suivi bien ce lien.
    mais j'ai un probleme avec ma representation :
    voici mon fichier xml :
    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
    <XMLFILE xmlns="http://tempuri.org/XMLFILE.xsd">
      <MY_DATA>
        <DATA_CODE>554</DATA_CODE>
        <DATA_LIBELLE>Data 1</DATA_LIBELLE>
        <DATA_TEXTE>&lt;P&gt;Un certain nombre de tests unitaires simples pour repérer les régressions&lt;/P&gt;</DATA_TEXTE>
        <DATA_DM>2005-07-12T11:26:12+02:00</DATA_DM>
      </MY_DATA>
     <MY_DATA>
        <DATA_CODE>555</DATA_CODE>
        <DATA_LIBELLE>Data 2</DATA_LIBELLE>
        <DATA_TEXTE>Texte &lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;de &lt;span style="color: rgb(255, 0, 0);"&gt;test&lt;/span&gt;&lt;/span&gt;&lt;br style="font-family: Arial,Helvetica,sans-serif; color: rgb(255, 0, 0);" /&gt;&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;
    &lt;span style="background-color: rgb(255, 255, 102);"&gt;Texte &lt;/span&gt;de&lt;/span&gt; test&lt;/span&gt;&lt;br /&gt;
    Texte de test&lt;br /&gt; </DATA_TEXTE>
        <DATA_DM>2005-07-12T11:26:12+02:00</DATA_DM>
      </MY_DATA>
    <MY_DATA>
        <DATA_CODE>556</DATA_CODE>
        <DATA_LIBELLE>Data 3</DATA_LIBELLE>
        <DATA_TEXTE>Substitution d'expression</DATA_TEXTE>
        <DATA_DM>2005-07-12T11:26:12+02:00</DATA_DM>
      </MY_DATA>
    <MY_DATA>
        <DATA_CODE>557</DATA_CODE>
        <DATA_LIBELLE>Data 4</DATA_LIBELLE>
        <DATA_TEXTE>&lt;P&gt;Un certain nombre de tests unitaires simples pour repérer les régressions&lt;/P&gt;</DATA_TEXTE>
        <DATA_DM>2005-07-12T11:26:12+02:00</DATA_DM>
      </MY_DATA>
    <MY_DATA>
        <DATA_CODE>558</DATA_CODE>
        <DATA_LIBELLE>Data 5</DATA_LIBELLE>
        <DATA_TEXTE>&lt;P&gt;Un certain nombre de tests unitaires simples pour repérer les régressions&lt;/P&gt;</DATA_TEXTE>
        <DATA_DM>2005-07-12T11:26:12+02:00</DATA_DM>
      </MY_DATA> 
    </XMLFILE>
    et pour ma feuille de style qui contient des template modulaire :
    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
    <?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" xmlns:def="http://tempuri.org/XMLFILE.xsd">
            <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">
    							<xsl:template match="MY_DATA">
    							    <xsl:apply-templates select="DATA_LIBELLE"/>
    							</xsl:template>
                                <xsl:template match="DATA_LIBELLE">
                                    <fo:block>
                                            <fo:block>
                                                <fo:block>
                                                    <xsl:value-of select="."/>
                                                </fo:block>
                                            </fo:block>
                                        </fo:block>
    							</xsl:template> 
                    </fo:flow>
                </fo:page-sequence>
            </fo:root>
    </xsl:stylesheet>
    l'affichage ramene toutes les données du fichier XML.
    je ne sais pas ou est mon erreur, j'ai fais le meme exemple avec ça :
    http://www.zvon.org/xxl/XSLTutorial/...mple6_ch2.html
    merci bien

  10. #10
    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
    xsl:stylesheet ne peut avoir comme élément enfant que certain des elements de l'espace de nom xsl.
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery" xmlns:def="http://tempuri.org/XMLFILE.xsd">
            <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
    Est incorrecte.

    Tu peux utiliser ce site :
    http://www.zvon.org/xxl/XSLTreference/Output/
    Selectionne les éléments xsl à gauche, ça t'affichera les élements possibles à droite.
    Sinon tout est décrit là :
    http://xmlfr.org/w3c/TR/xslt/

  11. #11
    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
    re..
    SVP, il m'a été demandé de rechercher sur la possbilité d'exécuter une feuille de style à partir d'un endroit precis, SVP, comme je l'ai mentionné mes anciens posts!
    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
    <?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.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">
                      "je voudrais appeler le template dans cet endroit"
                        <fo:block>
                            <fo:block>
                                <fo:block>
                                    <fo:inline font-size="16pt" font-weight="bold">
                                        <xsl:text>Liste des clients :</xsl:text>
                                    </fo:inline>
                                </fo:block>
                                <fo:block>
                                    <xsl:text> </xsl:text>
                                </fo:block>
                                <fo:block>
                                    <xsl:for-each select="/file/personne[NATURE=4]">
                                                        <xsl:value-of select="PERS_LIB"/>
                                    </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>
    svp existe t'il une solution pour ça ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/03/2007, 01h57
  2. [XSLT]prob de variables(xpath) param d'un appel de template
    Par zerax dans le forum XSL/XSLT/XPATH
    Réponses: 15
    Dernier message: 05/04/2005, 15h01
  3. Comment appeller un ActiveX de type Exe en JAVASCRIPT ?
    Par mandarindi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/03/2005, 09h57
  4. Comment appeler des API windows en C ?
    Par JuanLopez1966 dans le forum Windows
    Réponses: 6
    Dernier message: 22/12/2004, 10h34
  5. PRocédure stocké, comment appeler avec delphi?
    Par SkyDev dans le forum Bases de données
    Réponses: 3
    Dernier message: 09/04/2004, 18h20

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