Forum Programmation.web [XSLT] Dénombrer les noeuds

Posté par  .
Étiquettes : aucune
0
20
mar.
2006
Bonjour,

Avec 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
  • # Group by

    Posté par  . Évalué à 3.

    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  . É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

      Posté par  . Évalué à 1.

      Merci pour tes réponses et pour l'adresse du site.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.