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
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
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 !
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?
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>
impec' ca marche merci!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager