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 :

[XSLT] Comment couper une phrase "proprement"?


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut [XSLT] Comment couper une phrase "proprement"?
    Bonjour
    je recherche une solution pour couper une phrase trop longue sans couper un mot... la fonction "substring($txt, 1, $nbC)" ne me suffit donc pas...
    merci d'avance

  2. #2
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Je pense qu'il vous faut utiliser un template récursif pour repérer le dernier espace dans la chaine constituée par les n premiers caractères.

    Les fonctions contains, substring-before et substring-after seront vos amies !

  3. #3
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut
    j'y arrive pas ... je ne pratique pas le xslt depuis assez longtemps...
    en plus si je coupe un mot avec accent j'obtient un truc comme ca :
    soci&e à la place de socié
    une idée?

  4. #4
    Membre Expert Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Par défaut
    Quelque chose comme ceci quand on a $ligne plus grand que $lgmax
    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
    ...
    <xsl:call-template name="coupe">
     <xsl:with-param name="s" select="substring(normalize-space($ligne),$lgmax)"/>
    </xsl:call-template>
    ...
    <xsl:template name="coupe">
     <xsl:param name="s">
     <xsl:if test="contains($s,' ')">
      <xsl:variable name="s2">
       <xsl:call-template name="coupe">
        <xsl:with-param name="s" select="substring-after($s,' ')"/>
       </xsl:call-template>
      </xsl:variable>
      <xsl:value-of select="concat(substring-before($s,' '),' ',$s2)"/>
     </xsl:if>
    </xsl:template>

  5. #5
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Janvier 2005
    Messages : 37
    Par défaut
    impec' ca marche merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XSL~FO] Comment couper une phrase trop longue?
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 11/03/2008, 15h29
  2. [Tableaux] Comment decouper une phrase en mots?
    Par Alain15 dans le forum Langage
    Réponses: 3
    Dernier message: 26/06/2006, 10h04
  3. [XSLT] - Comment selectionner une balise avec un nom variable ?
    Par bchabot dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/04/2006, 09h59

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