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]somme des noeuds et soustraction


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut [Xpath]somme des noeuds et soustraction
    Salut à tous,

    J'ai le xml suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <ligne>
          <ID>1</ID>
          <VALEUR1>12</VALEUR1>
          <VALEUR2>2</VALEUR2>
    </ligne>
    <ligne>
          <ID>2</ID>
          <VALEUR1>30</VALEUR1>
          <VALEUR2>10</VALEUR2>
    </ligne>
    ....
    J'aimerais avec la somme des valeur1 - valeur2 et la stocker
    c'est à dire (12-2) + (30-10) = 30
    Comment faire ?
    Est ce possible ?


    Merci pour votre aide
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  2. #2
    Rédacteur

    Avatar de Erwy
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2003
    Messages
    4 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2003
    Messages : 4 967
    Points : 10 927
    Points
    10 927
    Par défaut
    Ce sera beaucoup plus simple si tu fais
    (12+30) - (2+10) = 30

    ce qui en xpath pourrait se traduire par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (sum(//VALEUR1)-sum(//VALEUR2))

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    merci je sais pas ou j'ai la tête

    par contre comment faire si des valeurs ne sont pas remplies ?
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 469
    Points : 167
    Points
    167
    Par défaut
    c bon merci
    ----------------------------------
    La façon la plus efficace de combattre un système qui ne nous convient plus
    n'est pas de lutter contre lui mais de s'en désintéresser et de ne plus l'alimenter...

    ----------------------------------

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [Xpath]somme des noeuds et soustraction
    Humm!

    Je suis plutôt débutant et peut être que quelquechose m'échappe mais il me semble qu'en XSL tout s'applique au context courant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(//VALEUR1) - SUM(//VALEUR2)
    ne fera pas grand chose malgrés le // qui veut dire n'import quel ancètre entre VALEUR1 par exemple et son context.

    Cela marche dans cet exemple simple: http://msdn.microsoft.com/en-us/library/ms256160.aspx

    Cela dit je demeure intéressé par la solution

    Merci

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    plutôt novice

    la solution proposée est bonne fort heureusement! et afin d'aider d'autres newbees
    voic un example complet

    positions.xml
    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
     
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="sum.xsl" ?>
    <ville>
    	<coord>
    		<point>
    			<est>515</est>
    			<nord>189</nord>
    		</point>
    		<point>
    			<est>516</est>
    			<nord>188</nord>
    		</point>
    		<point>
    			<est>531</est>
    			<nord>179</nord>
    		</point>
    		<point>
    			<est>531</est>
    			<nord>179</nord>
    		</point>
    	</coord>
    </ville>
    sum.xsl
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     
    	<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    		<head>
    			<title>sum_est - sum_nord</title>
    		</head>
    		<body>
    			<xsl:template match="/">
    				<xsl:apply-templates select="child::node()/coord" />
    			</xsl:template>
    		</body>
    	</html>
    	<xsl:template match="coord">
    		<xsl:value-of select="sum(//est) - sum(//nord)" />
    	</xsl:template>
     
    </xsl:stylesheet>

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/03/2010, 13h30
  2. [XPATH] Selectionner des noeuds dont on ne connait pas le nom
    Par Lolo19 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 25/09/2009, 15h38
  3. somme des noeuds d'un arbre binaire
    Par bibi182 dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2007, 11h30
  4. [Xpath] Sélection des noeuds dont un attribut
    Par toxine dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 29/01/2007, 14h22
  5. [XPath] Recuperation des noeuds Entre Deux Commentaires
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 03/07/2006, 13h08

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