Dénombrement multi-critères en XSLT

Résolu/Fermé
philmtjn Messages postés 59 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 26 juillet 2017 - 18 juil. 2017 à 17:01
philmtjn Messages postés 59 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 26 juillet 2017 - 26 juil. 2017 à 13:10
Bonjour,
Je voudrais faire une pyramide des ages ou même un simple tableau avec Firefox et des données en XML.

J'ai un petit souci de XSLT
j'ai un fichier de données du type :


<ligne><nom>dupont</nom><age>34</age><sexe>Homme</sexe></ligne>
<ligne><nom>durand</nom><age>42</age><sexe>Femme</sexe></ligne>
.....


et dans le fichier xsl j'ai des formules du style :
- pour l'age :

<xsl:value-of select="count(//age[. >= 30 and . < 50])"/>

- pour le sexe :

<xsl:value-of select="count(//sexe[. = 'Femme'])"/>


Cela me donne bien le nombre de lignes dont l'age est entre 30 et 50ans ou le nombre de femmes et/ou d'hommes,
mais impossible d'avoir d'un coté le nombre d'hommes (sexe='Homme') qui ont entre 30 et 50ans et de l'autre, le nombre de femmes.

si quelqu'un a une idée...
J'ai consulté tous les exemples que j'ai trouvé dans les manuels de XSLT, sans succès pour le moment.


1 réponse

philmtjn Messages postés 59 Date d'inscription mardi 3 août 2004 Statut Membre Dernière intervention 26 juillet 2017 4
26 juil. 2017 à 13:10
Bonjour à tous,

J'ai enfin fini par trouver.
Il faut faire référence à l'élément parent et tout mettre entre crochets :
ex : le nombre d'hommes entre 30 et 40 ans, celà donne :

<xsl:value-of select="count(//Ligne[Age & gt;= 40 and Age & lt; 50 and HommeFemme='Homme'])"/>

en retirant l'espace entre le & et gt ou lt pour Greater Than et Less Than.

0