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 :

Table des matières


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut Table des matières
    Je génère une table des matière de la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	<xsl:when test="title">
    			<fo:block font-family="Arial" font-size="10pt" font-weight="bold" text-align-last="justify">
    		  		<xsl:value-of select="title" />
    		  		<fo:leader leader-pattern="dots" leader-pattern-width="4pt"/>
    		  		<fo:basic-link internal-destination="{generate-id(.)}" color="blue">
    					<fo:page-number-citation ref-id="{generate-id()}" />
    				</fo:basic-link>
    			</fo:block>
    			....
    		</xsl:when>
    J'obtiens le résultat


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    AAAAA BBBBB CCCCCCC DDDDDDDD EEEEEE FFFFFFFFF ............10
    ZZZ FFFF GGGG JJJJJ JJJJJJ KKKKK MMMMMMMMMMM MMMMM KKKKKK.11
    DHHDHD HHDKK DJJDJ JDJJD JJJJ DJJJJD KKKEIIEI KKKEKEK KKKEKE
       KFHGOG OKOOG GOOGO ....................................12
    FDFFDFFDFD ...............................................13
    Comment éviter d'avoir le résultat que j'ai mis en gras ?

    je voudrai obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DHHDHD HHDKK DJJDJ JDJJD JJJJ DJJJJD KKKEIIEI KKKEKEK 
       KKKEKE KFHGOG OKOOG GOOGO .............................12
    FDFFDFFDFD ...............................................13


    Merci

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

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour Henri,

    en supposant que tu ne souhaite pas la ligne contenant le texte :

    DHHDHD
    tu peux utiliser la fonction XPath contains :

    title[not(contains(., 'DHHDHD'))]

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2009
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 237
    Par défaut
    je me suis mal expliqué, je voudrai que le texte se découpe mieux :

    Ce que je ne veux pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DHHDHD HHDKK DJJDJ JDJJD JJJJ DJJJJD KKKEIIEI KKKEKEK KKKEKE
       KFHGOG OKOOG GOOGO ....................................12
    Ce que je voudrai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DHHDHD HHDKK DJJDJ JDJJD JJJJ DJJJJD KKKEIIEI KKKEKEK 
       KKKEKE KFHGOG OKOOG GOOGO ............................12

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

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Bonjour Henri,

    j'ai déjà été confronté à ce problème, je n'ai pas trouver de solution simple.

    Solution 1 : je me conforme à la mise en page de mon sommaire en modifiant le texte de l'entrée de mon sommaire.

    Solution 2 : j'insère des caractères blancs à l'endroit où je rencontre ce problème.
    Il est possible de le faire bien entendu à la main,
    mais cela peut être fastidieux du fait qu'il faille recommencer à chaque fois qu'une modification du texte de l'entrée, des dimensions horizontales du sommaire ou encore la police est effectuée;

    Solution 3 : heureusement, il est aussi possible de l'automatiser tout cela
    (je le fais à titre professionnel uniquement).

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Août 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 16
    Par défaut
    Bonjour,

    Un petit template en plus peut-être :

    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
     
    <xsl:when test="title">
    			<fo:block font-family="Arial" font-size="10pt" font-weight="bold" text-align-last="justify">
    		  		<xsl:apply-templates select="title" mode="cut-string"/>
    		  		<fo:leader leader-pattern="dots" leader-pattern-width="4pt"/>
    		  		<fo:basic-link internal-destination="{generate-id(.)}" color="blue">
    					<fo:page-number-citation ref-id="{generate-id()}" />
    				</fo:basic-link>
    			</fo:block>
    			....
    		</xsl:when>
     
    <xsl:template match="*" mode="cut-string">
    <xsl:choose>
    <xsl:when test="string-length(.) &gt; 24">
    <xsl:value-of select="substring(.,1,24)"/>
    <xsl:text>le code hexa pour le retour ligne :s</xsl:text>
    <xsl:apply-templates select="substring(.,25)" mode="cut-string"/>
    </xsl:when>
    <xsl:otherwise>
    <xsl:value-of select="."/>
    </xsl:otherwise>
    </xsl:choose>
    </xsl:template>

    Sinon je dois pouvoir retrouver un template que j'avais réaliser pour éviter de couper un mot...

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

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

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1 460
    Par défaut
    Oui, bien entendu on peut toujours ajouter une ou deux règles,
    pour compter le nombre de caractères et ajouter quelques espaces blancs,
    et cela fonctionne très bien,
    mais reste utilisable que pour un nombre assez limiter de présentations.

Discussions similaires

  1. [WORD]Table des matières
    Par Elstak dans le forum VBA Word
    Réponses: 5
    Dernier message: 11/05/2006, 14h09
  2. Modifier la profondeur de la table des matières
    Par Bouboubou dans le forum Mise en forme
    Réponses: 6
    Dernier message: 16/12/2005, 13h19
  3. [CR11] une table des matières, avec n° de page : possible ?
    Par kikidrome dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 08/09/2005, 11h49
  4. [OpenOffice][Texte] Table des matières
    Par fuhraih dans le forum OpenOffice & LibreOffice
    Réponses: 6
    Dernier message: 12/08/2005, 11h40
  5. créer une table des matières avec fop
    Par gedeon555 dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 05/07/2005, 15h54

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