logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

Re: Pb d'utilisation de la fonction string-length(): msg#00086

Subject: Re: Pb d'utilisation de la fonction string-length()
Bonjour,

Le mercredi 26 janvier 2005 à 10:42 +0100, Oscar NIYONKURU a écrit :
> Bonjour à tous!
>  
> Je dois faire une transformation XSLT suivante: si le codepays (un
> string) est inférieur ou égal à 30 on l'affiche tel quel sinon on
> affiche que les 30 premiers caractères!!!
>  
> J'ai utilise ce bout de code:
>  
> <xsl:choose>
> <xsl:when test="string-length('Societe//Code_Pays')&lt;30">
>      <n_lnpays><xsl:value-of select="Societe//Code_Pays"/></n_lnpays>
> </xsl:when>
> <xsl:otherwise>
>      <n_lnpays><xsl:value-of
> select="substring(Societe//Code_Pays,1,30)"/></n_lnpays>
> </xsl:otherwise>
> </xsl:choose>
>  
> Mais quand je teste un code pays avec plus de 30 caractères, je n'ai
> pas d'erreur en sortie mais il n'applique pas la transformation (il
> n'affiche  pas les 30 premiers caractères comme je l'ai spécifié avec
> substring mais affiche tout).
>  
> Avez-vous une idée de comment je peux faire?

Cela devrait mieux fonctionner si vous enleviez les simples quotes
autours de votre expression XPath : 'Societe//Code_Pays' est une chaine
de caractères constante et string-length('Societe//Code_Pays') vaut
toujours 18 :-) !!!

A noter également :

      * substring(Societe//Code_Pays,1,30) ne sélectionnera que le
        premier noeud Societe//Code_Pays s'il y en plusieurs
      * substring(Societe//Code_Pays,1,30) ne retournera pas d'erreurs
        si Societe//Code_Pays a une longueur inférieure à 30 et le test
        n'est donc pas nécessaire

Cordialement,

Eric van der Vlist
> Merci d'avance!!!
>  
> 
> 
> 
> 
>               
> ---------------------------------
>  Découvrez le nouveau Yahoo! Mail : 250 Mo d'espace de stockage pour
> vos mails !
> Créez votre Yahoo! Mail
> 
> --
> Devenez redacteur <XML>fr et contribuez au developpement du
> xml francophone (http://xmlfr.org/infos/redacteurs/) !
> 
> Liste de diffusion "xml-tech@xxxxxxxxx" (http://xmlfr.org).
> 
> Cette liste est a votre disposition pour discuter en francais de 
> tout sujet technique lie a XML.
> 
> Pour resilier votre abonnement, envoyez un message contenant 
> la commande "unsubscribe" a xml-tech-request@xxxxxxxxx
> (mailto:xml-tech-request@xxxxxxxxx?Subject=unsubscribe)
> 
> 
-- 
Read me on XML.com.
                                            http://www.xml.com/pub/au/74
------------------------------------------------------------------------
Eric van der Vlist       http://xmlfr.org            http://dyomedea.com
(ISO) RELAX NG   ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------




<Prev in Thread] Current Thread [Next in Thread>