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] formater un nombre


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut [XSLT] formater un nombre
    Bonjour,


    Je deviens de nouveau taré avec mes nombres je sais pas pourquoi mais ce nombre ne se format pas comme je le souhaite et je ne comprend pas trop pourquoi:

    Mon xslt:
    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
    25
    26
    27
    28
    29
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" 
    	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
    	<xsl:template match="Stueckelung">
    		<xsl:variable name="apos">'</xsl:variable>
    		<w:p>
    			<w:pPr>
    				<w:keepNext/>
    				<w:keepLines/>
    			</w:pPr>
    			<w:r>
    				<w:rPr>
    					<w:b/>
    				</w:rPr>
    				<w:t>
    					<xsl:number value="@Anzahl" grouping-separator="'" format="1" grouping-size="3"/>
    					<xsl:text> </xsl:text>
    					<xsl:value-of select="@Aktien"/> zu CHF <xsl:choose>
    						<xsl:when test="contains(@AktienWert, '.')">
    							<xsl:value-of select="translate(format-number(@AktienWert, '###,###.##'), ',', $apos)"/>
    						</xsl:when>
    						<xsl:otherwise>
    							<xsl:value-of select="translate(format-number(@AktienWert, '###,###'), ',', $apos)"/>.--</xsl:otherwise>
    					</xsl:choose>
    				</w:t>
    			</w:r>
    		</w:p>
    	</xsl:template>
    </xsl:stylesheet>
    mon XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <Stueckelung Aktien="Namenaktien" AktienTyp="ZNA" AktienWert="0.80" Anzahl="1183046764" Waehrung="CHF" valid="1">
    	<Stueck>1'183'046'764 Namenaktien zu CHF 0.80</Stueck>
    </Stueckelung>
    ma sortie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0" encoding="UTF-8"?>
    <w:p xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
    <w:pPr>
    <w:keepNext />
    <w:keepLines />
    </w:pPr>
    <w:r>
    <w:rPr>
    <w:b />
    </w:rPr>
    <w:t>1'183'046'764 Namenaktien zu CHF .8</w:t>
    </w:r>
    </w:p>
    ce que j'aimerais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    <w:t>1'183'046'764 Namenaktien zu CHF 0.80</w:t>
    ...
    Comment faire?

    Merci de votre aide!

    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 300
    Points
    300
    Par défaut Essai sur EditiX
    Apparemment cela vient de ton moteur de transformation.

    Voici le résultat aprés un essai sur EditiX :

    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
    25
    <?xml version="1.0" encoding="UTF-8"?>
     
    <w:p xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
     
    <w:pPr>
     
    <w:keepNext/>
     
    <w:keepLines/>
     
    </w:pPr>
     
    <w:r>
     
    <w:rPr>
     
    <w:b/>
     
    </w:rPr>
     
    <w:t>1'183'046'764 Namenaktien zu CHF 0.8</w:t>
     
    </w:r>
     
    </w:p>
    Cordialement,

    A.Brillant
    EditiX - Editeur XML et Debugger XSLT
    http://www.editix.com

  3. #3
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    Salut,

    Merci pour la réponse!

    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <w:t>1'183'046'764 Namenaktien zu CHF 0.8</w:t>
    C'est pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <w:t>1'183'046'764 Namenaktien zu CHF 0.80</w:t>
    Existe-t-il une autre méthode qui me premette d'avoir les centimes juste ainsi que les ' si CHF 1'000'000.20 ?

    Je croyais que j'avais enfin une bonne solution mais non ca ne marche pas correctement!

    Merci
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

  4. #4
    Membre averti

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 300
    Points
    300
    Par défaut
    Je ne connais pas les nombres que tu gères. Mais un truc comme cela, cela pourrait aller ?

    format-number(@AktienWert, '###,###.#0')

    Sinon je ne vois pas trop à moins de passer par une variable et de faire un test sur le contenu substring-after( format-number(@AktienWert, '###,###.##'), '.' ) et tester la taille. Si = 1 alors
    ajouter 0.

  5. #5
    Membre expérimenté
    Avatar de virgul
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 625
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 625
    Points : 1 666
    Points
    1 666
    Par défaut
    et quand tu as 23.25 tu fais comment avec ta méthode? bref faut que je trouve ou que je créer une logique qui doit marcher a tout les coup pour des chiffre allant de Fr. 0.01 à 9'000'000'000.--

    Je trouve quand même ca ahurissant que dans un méta-langage aussi bien foutu qu'xml on aie pas prévu quelque chose pour les nombres avec et sans , . Mais bon c'est comme ca et je l'accepte de toute facon j'ai pas trop le choix!

    si t'as des idées? moi je vais plancher de mon coté!


    ++

    Thierry
    "Life is short don't forget to inhale"
    Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

Discussions similaires

  1. [Nombre]formater le nombre de décimal après une virgule.
    Par PascalCmoa dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 09/03/2007, 10h40
  2. formater un nombre en format "monétaire"
    Par jm6570 dans le forum Access
    Réponses: 2
    Dernier message: 14/09/2005, 10h06
  3. Formater un nombre avec Crystal Reports
    Par Soph70 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 05/07/2005, 19h27
  4. [XSLT] formater la date
    Par virgul dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 18/02/2005, 07h41
  5. Format de nombre
    Par shawinnigan dans le forum Oracle
    Réponses: 12
    Dernier message: 23/08/2004, 12h37

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