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

XML/XSL et SOAP Discussion :

un simple sum dans XSLT ne marche pas


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 62
    Points : 38
    Points
    38
    Par défaut un simple sum dans XSLT ne marche pas
    bonjour a vous tous!
    Voici un simple sum mais qui ne marche pas dans xstl
    pourquoi!

    voici mon imput!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
       <liste> 
        <client nom="Jean Charles"> 
            <transaction montant="500" />
            <question>Quelle est la dernière marque?</question>
            <transaction montant="1200" /> 
         </client> 
         <client nom="Pierre Élisabeth"> 
            <transaction montant="600" /> 
            <transaction montant="800" /> 
             <question>Où puis-je trouver le modèle 2002?</question>
            <transaction montant="2000" /> 
         </client> 
        </liste>
    voici mon code xstl!
    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
    <xsl:template match="/">
     
    <html><body>
     
    <table width="400" border="1">
      <tr>
        <th scope="col">Étudiant</th>
        <th scope="col">Somme</th>
      </tr>
     
    <xsl:for-each select="liste/client">
        <xsl:sort select="substring-after(nom,' ')" order="ascending"/>
     <tr>
        <td><xsl:value-of select="@nom"/></td>
        <xsl:for-each select="transaction/@montant">
            <xsl:value-of select="sum(.)"/>
         </xsl:for-each> 
        </tr>
         </xsl:for-each>
    </table>
     
     </body>
     </html>
     </xsl:template>
     </xsl:stylesheet>
    et voici mon input!
    Étudiant Somme
    Jean Charles 5001200
    Pierre Élisabeth 6008002000
    voici le resultat attendu!
    Étudiant Somme
    Jean Charles 1700
    Pierre Élisabeth 3400
    Merci de votre aide!

  2. #2
    Rédacteur

    Avatar de autran
    Homme Profil pro
    Développeur Java
    Inscrit en
    Février 2015
    Messages
    1 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2015
    Messages : 1 241
    Points : 7 653
    Points
    7 653
    Billets dans le blog
    55
    Par défaut
    En réalité, ton code fonctionne très bien puisque tu demandes de faire un sum() de string donc il concatène tes chaines de caractères.
    pour arriver à tes fins tu peux soit utiliser number() ou revoir le schéma de ton fichier pour mettre des nombres au lieu de string.
    Développeur Java
    Site Web

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 62
    Points : 38
    Points
    38
    Par défaut Merci pour ton temps voici mon résultat
    Voici mon résultat avec le number() comme suggéré
    encore merci pour ton temps super...

    Code xml : 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
    <?xml version="1.0" encoding="UTF-8"?>
     
    <!-- New document created with EditiX at Thu Jun 11 12:38:21 EDT 2015 -->
     
      <xsl:stylesheet version="1.0" 
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
     <xsl:template match="/">
     
    <html><body>
     
    <table width="400" >
     
    <xsl:for-each select="liste/client">
        <xsl:sort select="substring-after(nom,' ')" order="ascending"/>
              <p><td>Nom du client : <xsl:value-of select="@nom"/></td> </p>
              <p><td>Somme :    <xsl:value-of select="format-umber(sum(transaction/@montant),'####')"/> </td>  </p>
         </xsl:for-each>

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

Discussions similaires

  1. URL copiée dans OE ne marche pas
    Par robe291 dans le forum Outlook Express / Windows Mail
    Réponses: 0
    Dernier message: 07/04/2008, 07h56
  2. Requête modif dans formulaire ne marche pas
    Par crissud dans le forum IHM
    Réponses: 2
    Dernier message: 12/04/2007, 10h31
  3. Flottement dans élément flottant : marche pas
    Par php_de_travers dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 30/01/2007, 18h24
  4. Réponses: 2
    Dernier message: 09/04/2006, 16h05
  5. Réponses: 13
    Dernier message: 06/03/2006, 15h25

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