Retourner aux forums || Retourner au forum Programmation.web
Programmation.web : [XSLT] Dénombrer les noeuds
Posté par Rork () le 20 mars 2006Avec un fichier XML du style:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="metrics_MLOC3.xsl" type="text/xsl"?>
<Metric id = "NSM" description ="Number of Static Methods">
<Value name="methode1" source ="source1.java" value ="13"/>
<Value name="methode2" source ="source1.java" value ="10"/>
<Value name="methode3" source ="source2.java" value ="10"/>
<Value name="methode4" source ="source3.java" value ="8"/>
<Value name="methode5" source ="source3.java" value ="6"/>
<Value name="methode6" source ="source3.java" value ="4"/>
A l'aide d'un fichier XSLT, est-ce qu'il est possible d'obtenir un tableau qui dénombre le nombre de fois que l'on a vu apparaitre un fichier source spécifique.
Avec l'exemple ci-dessus j'aimerais obtenir:
source1.java = 2
source2.java = 1
source3.java = 3
Merci
> Lire le message (3 commentaires, moyenne: 2,7).
Group by
Une page qui devrait t'aider : http://www.fragbase.com/sql2xpath.php#groupby
Oui c'est pas simple, la version 2.0 de xslt intégrera un <xsl:for-each-group /> qui facilitera grandement la chose ...
Dam
-
[^]Re: Group by
Posté par Hardy Damien (page perso, ) le 20/03/2006 à 10:12. (lien). Évalué à 4.pour le fun je l'ai faite :
<xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/XSL/Transform" version = "1.0" >
<xsl:output method = "text" />
<xsl:template match="/">
<xsl:for-each select=" //Value[ not (@source=preceding-sibling::Value/@source) ]/@source">
<xsl:value-of select="." /> : <xsl:value-of select="count(//Value[@source=current()])" /><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Dam
-
[^]Re: Group by
Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.web



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.