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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  appel d'un template xsl-fo !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

appel d'un template xsl-fo !

n°1774133
alpacino_t​oldo
Posté le 18-08-2008 à 15:08:50  profilanswer
 

bonjour...
je cherche comment appeler le templates suivant dans un endroit precis :
 

Citation :

<?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 ce templates 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>


 
le but et de concevoir plusieurs feuilles de styles pour par la suite les assembler dans une seule feuille de style.
merci bien.

mood
Publicité
Posté le 18-08-2008 à 15:08:50  profilanswer
 

n°1776385
avander
Posté le 23-08-2008 à 10:46:06  profilanswer
 

J'avoue que je comprends pas trop ce que tu veux faire... ceci dit j'ai fait pas mal de xsl:fo...
 
Il faut pas essayer de tout goupiller dans un template qui va rapidement devenir monstrueux. Il faut par contre bien maîtriser les transformations xslt avant de s'attaquer à xslfo...  :whistle:  
 


  <xsl:template match="/">
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
      <fo:layout-master-set>
         
          <!-- ici on décrit la structure du document et des pages ( entête, corps, pied de page)-->  
 
      </fo:layout-master-set>
 
      <xsl:apply-templates select="paragraph"/><!-- sélectionner la partie du xml qu'on veux transformer -->
    </fo:root>
  </xsl:template>


 
Le template racine ( "/" ) est idéal pour déclarer la mise-en-page comme tu l'as fait également. Après la déclaration on amorce la transformation en sélectionnant un élément de l'xml. Dans le template de l'élément on peut ensuite détailler...
 


  <xsl:template match="paragraph">
    <fo:block xsl:use-attribute-sets="bl.basics">
      <xsl:apply-templates /><!-- transforme les enfants de paragraph -->
    </fo:block>
  </xsl:template>
 
  <xsl:template match="sup">
    <fo:inline baseline-shift="super"><xsl:apply-templates/></fo:inline>
  </xsl:template>
 
  <xsl:template match="sub">
    <fo:inline baseline-shift="sub"><xsl:apply-templates/></fo:inline>
  </xsl:template>
 
  <xsl:template match="b">
    <fo:inline font-weight="bold"><xsl:apply-templates/></fo:inline></xsl:template>
 
  <xsl:template match="i">
    <fo:inline font-style="italic"><xsl:apply-templates/></fo:inline></xsl:template>
 
  <xsl:template match="u">
    <fo:inline text-decoration="underline"><xsl:apply-templates/></fo:inline></xsl:template>
 


 
Pour bien saisir la philosophie fo il ne faut pas hésiter à consulter les nombreux exemples disponible sur le net et de commencer avec des transformations simples. La syntaxe fo est assez obscure et 'verbeuse' ce qui la rend moins évidente à maîtriser.
 
Je t'apprends sans doute rien en disant qu'il est possible de convertir ensuite le fichier fo en pdf avec FOP...


Message édité par avander le 23-08-2008 à 10:53:49

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

  appel d'un template xsl-fo !

 

Sujets relatifs
Newbee - template fluide à 100% avec des DIV[java] problème avec l'appel d'une commande unix
Système de template : ais je bien compris ?MovieClip, appel de fonctions, nombre de conteneurs, ...
appel procedure stockée de MySQL avec du javaajouter des paramètres lors de l'appel d'une page php
Fonction définie dans la page et appel dans une iframeappel de deux fonctions javascript dans un onsubmit
Appel à accept() bloqué alors que le fd a été retourné par select()Appel de fonction static dans fonction template
Plus de sujets relatifs à : appel d'un template xsl-fo !


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