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 :

[Débutant] somme de la valeur d'attributs...


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut [Débutant] somme de la valeur d'attributs...
    Bonjour, je débute avec XML et les feuilles de style XSL et j'aurais besoin d'un peu d'aide.
    Voici mon fichier XML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?xml version="1.0" standalone="yes"?>
    <Racine>
       <Personne Nom='moi'>
            <Param value='Cool' nombre='4'/>
    	<Param value='Smart' nombre='2'/>
      </Personne>
      <Personne Nom='toi'>
            <Param value='Bizarre' nombre='2'/>
      </Personne>
    </Racine>
    En fait, je voudrais un tableau qui compte les personnes et qui compte les param...

    voici mon fichier XSL actuel :
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
       <xsl:output method="html" encoding="ISO-8859-1" indent="no" />
     
       <xsl:template match="Racine">
          <html>
             <body>
                <table border="1">
                   <tr bgcolor="#0045CC">
                      <th align="center">
                         <font color="#FFFFFF">Personne</font>
                      </th>
                      <th align="center">
                         <font color="#FFFFFF">Param</font>
                      </th>
                      <th align="center">
                         <font color="#FFFFFF">Total</font>
                      </th>
                   </tr>
     
                   <xsl:for-each select="Personne">
                   	  <td colspan="3">
                         <xsl:value-of select="@Nom" />
                      </td>
                      <xsl:for-each select="Param">
                         <tr>
                            <td></td>
                            <td>
                               <xsl:value-of select="@value" />
                            </td>
                            <td>
                                <xsl:value-of select="@nombre" />
                            </td>
                         </tr>
                      </xsl:for-each>
                      <tr>
                      <td>
                         Total <xsl:value-of select="@Nom" />
                      </td>
                      <td colspan="2">
                         ??? Somme de nomre ???
                      </td>
                      </tr>
                   </xsl:for-each>
                </table>
             </body>
          </html>
       </xsl:template>
    </xsl:stylesheet>
    ??? Somme de nomre ??? devrait indiquer 6 pour le premier noeud Personne et 2 pour le second noeud.
    Comment faire en xml ?

    Juste comme ca, comment faire pour afficher le nombre de lignes de param à la place de la somme (ca n'a pas de rapport avec la question, c'est juste pour savoir comment faire)

    J'espère avoir été clair, mais je suis pas sûr donc s'il le faut, je réexpliquerai...

    Merci

  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,

    tu disposes de fonctions XPath pouvant travailler sur des valeurs numériques contenues dans des noeuds, comme sum() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="sum(Param/@nombre)"/>
    Pour compter des éléments, utilise la fonction count() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <xsl:value-of select="count(Param)"/>

  3. #3
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut
    Merci ca marche super...

    Par contre, j'ai juste une petite question. Ce n'est peut être pas le bon endroit, mais puisque c'est en relation avec ce post.
    Voilà, j'ai un :
    dans mon code et le problème est que les bordures ne sont pas tracées pour cette case.
    J'ai regardé comment faire en html et j'ai trouvé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
            <td>
                <p>&nbsp;</p>
            </td>
    Mais ca ne marche pas, il me dit :
    ERROR: Reference to undefined entity 'nbsp'.
    Source: ' <p>&nbsp;</p>'
    Comment faire ?

    Merci

  4. #4
    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 : 48
    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
    certains processeur xslt n'aiment pas les &nbsp; dont msxml
    essaye de le passer en commentaire avec un
    <![CDATA[&nbsp;]]> marchera peut etre

  5. #5
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut
    Non ca ne marche pas, il met "&nbsp;" dans la case du tableau...

  6. #6
    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
    &nbsp; n'est pas une entité reconnue par le format XML (et ta feuille de style est au format XML !) qui ne reconnait que quelques entités (&amp; &lt; &gt; &quot; )
    Pour contourner le problème, essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p>
      <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
    </p>

  7. #7
    Membre habitué Avatar de SteelBox
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    446
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2002
    Messages : 446
    Points : 194
    Points
    194
    Par défaut
    Non ca ne marche tjs pas....
    C'est vraiment dommage quand même

  8. #8
    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 : 48
    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
    Citation Envoyé par GrandFather
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <p>
      <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
    </p>
    celle la marche pas(en tout cas avec msxml ),je l'avais deja essaye,par contre je crois que ta R2 avec le caractere unicode etait celle qui avait fonctionné(un peu loin tout ca )
    steelbox>>va voir ce qu'il a ecrit dans le post it proposition pour la faq

Discussions similaires

  1. changer la valeur des attribut
    Par yos dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/02/2006, 14h27
  2. [Débutant] Somme, totaux et formulaire
    Par eraim dans le forum Access
    Réponses: 3
    Dernier message: 14/10/2005, 10h53
  3. [Custom Tags 1.2] Passer une variable comme valeur d'attribut d'un tag jsp
    Par Pi2 dans le forum Taglibs
    Réponses: 7
    Dernier message: 16/09/2005, 14h44
  4. [Débutant] Problème de récupération valeurs Bean
    Par DanZzz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 14/08/2005, 20h27
  5. Réponses: 4
    Dernier message: 01/09/2004, 16h56

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