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 :

[XPath 1.0] Somme de nombres décimaux avec virgule


Sujet :

XSL/XSLT/XPATH XML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 53
    Par défaut [XPath 1.0] Somme de nombres décimaux avec virgule
    Bonjour,

    Je voudrais écrire une expression Xpath pour faire la somme d'éléments représentant des nombres décimaux au format français (avec virgule à la place du point donc).

    Mon document xml en input ressemble à ceci:

    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
     
    <document>
    	<item>
    		<label>A</label>
    		<value>10,5</value>
    	</item>
    	<item>
    		<label>B</label>
    		<value>9,23</value>
    	</item>
    	<item>
    		<label>C</label>
    		<value>20,46</value>
    	</item>
    </document>

    J'ai essayé l'expression suivante, mais ça ne passe pas en Xpath 1.0 alors que ça passe en Xpath 2.0:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sum(/document/item/value/number(translate(.,',','.')))
    J'obtiens cette erreur: Unexpected token - "number(translate(.,',','."

    Pourtant les fonctions number et translate sont bien disponibles en Xpath 1.0 non?

    Y'a-t-il moyen d'écrire cette expression autrement pour qu'elle puisse passer en Xpath 1.0 ? Malheureusement je suis obligé de me limiter à cette version sachant que j'ai besoin d'utiliser Xalan comme moteur Xslt.

    Merci d'avance pour toute aide

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 466
    Par défaut
    Avec xalan tu peux faire ça :
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xalan="http://xml.apache.org/xalan"
    >
     
    <xsl:template match="/">
    	<xsl:variable name="translated">
    		<xsl:for-each select="//value">
    			<value><xsl:value-of select="translate(text(),',','.')"/></value>
    		</xsl:for-each>
        </xsl:variable>     
     
    	<test value="{sum(xalan:nodeset($translated)/value)}"/>
    </xsl:template>
     
    </xsl:stylesheet>

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

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

    en XPath 1.0, aucune possibilité. Si tu utilises DOM+XPath, le plus simple est de sélectionner les noeuds concernés avec XPath, puis de faire la somme en parcourant le nodeset.
    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. afficher un nombre réel avec virgule
    Par alias2015_29 dans le forum Débuter
    Réponses: 7
    Dernier message: 16/01/2015, 15h45
  2. [PDO] Problème Insert nombre flotant avec virgule
    Par shadeoner dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/06/2009, 12h53
  3. Réponses: 21
    Dernier message: 01/09/2008, 11h16
  4. Somme sur des nombre décimaux
    Par chrislauxerrois dans le forum Access
    Réponses: 1
    Dernier message: 01/08/2006, 16h46
  5. [PHP,MYSQL et CSV]Importation avec nombres décimaux
    Par m3n2o dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 20/06/2006, 11h47

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