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 :

Format décimal dans les fichiers XML [FAQ]


Sujet :

XML/XSL et SOAP

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Format décimal dans les fichiers XML
    Bonjour,

    Je suis confronté au problème de manipulation de nombres décimaux dans une feuille XSL. Si ces nombres sont écrits au format décimal français (avec une virgule), je ne peux pas les utiliser dans les fonctions par défaut de XSL (sum, ... ) car la données n'est pas un nombre.

    Format français
    <nbDecimal>15,69</nbDecimal>

    Format Américain
    <nbDecimal>15.69</nbDecimal>

    Existe-t-il un moyen pour manipuler les nombres français sans avoir à effectuer une conversion supplémentaire dans XSL (extraction sous-chaine, remplacement de la "," par un "." au cas par cas, etc...) ?

    C'est à dire, peut-on localiser la feuille XSL afin de pouvoir utiliser NATURELLEMENT les nombres au format français du fichier XML ?


    Merci par avance pour vos infos.

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    ce n'est malheureusement pas possible, la grammaire de XPath ne l'autorise pas. Si ton processeur XSLT supporte la fonction node-set(), ce qui est le cas de Xalan ou Saxon, tu peux t'en sortir comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <xsl:stylesheet 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
    xmlns:exslt="http://exslt.org/common">
     
    <xsl:variable name="nombres-us">
      <xsl:for-each select="//nbDecimal">
        <nbDecimal><xsl:value-of select="translate(., ',', '.')"/></nbDecimal>
      </xsl:for-each>
    </xsl:variable>
    ...
    <xsl:value-of select="sum(exslt:node-set($nombres-us)/*)"/>
    ...
    </xsl:stylesheet>
    Sinon, il faudra passer par l'écriture d'une fonction de somme sous la forme d'un template nommé (fonction) qui fera la conversion en même temps que la somme et le parcours des noeuds.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    Merci pour ta réponse. C'est dommage ne pas pouvoir localiser les feuilles de transformation, ça éviterai pas mal de conversions/ bidouilles.

    Que signifie "[FAQ]" que tu as ajouté au sujet de la réponse ? Que j'aurai du trouver ma réponse dans la FAQ (j'ai beau chercher, je n'ai rien trouvé qui s'y rapporte) ou que ma question est typique et devrait être ajoutée à la FAQ ?


    Encore merci


    Vincent

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par wozzz
    Que signifie "[FAQ]" que tu as ajouté au sujet de la réponse ? Que j'aurai du trouver ma réponse dans la FAQ (j'ai beau chercher, je n'ai rien trouvé qui s'y rapporte) ou que ma question est typique et devrait être ajoutée à la FAQ ?
    Ce problème de localisation est récurrent, et mérite de figurer dans la FAQ XML. Le rôle de ce marqueur est de nous permettre de nous le rappeler...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Réponses: 8
    Dernier message: 01/05/2007, 17h13
  2. [Encoding] Comment stocker les caractères arabes dans un fichier XML?
    Par merci_tous dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 13/02/2007, 16h57
  3. Réponses: 2
    Dernier message: 16/08/2006, 14h47
  4. Récupérer les valeurs d'un noeud dans un fichier XML
    Par yosthegost dans le forum Delphi
    Réponses: 1
    Dernier message: 30/05/2006, 17h38
  5. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39

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