Skeeve: Häufigkeiten von Werten in einer XSL-Schleife

Beitrag lesen

Moin!

Vielleicht hilft Dir das als Ansatz?

  
<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  
 <xsl:output method="xml" indent="yes"/>  
  
 <xsl:template match="FF">  
  <FF>  
   <xsl:for-each-group select="meta" group-by="Value1/text()">  
    <gruppe>  
     <xsl:copy-of select="current-group()"/>  
    </gruppe>  
   </xsl:for-each-group>  
  </FF>  
 </xsl:template>  
  
</xsl:stylesheet>  

Das Ergebnis ist dann sowas wie:

  
<?xml version="1.0" encoding="UTF-8"?>  
<FF>  
   <gruppe>  
      <meta>  
        <Value2>4.9</Value2>  
        <Value1>5.7</Value1>  
        <FileName>file2</FileName>  
        <Quantity>1</Quantity>  
      </meta>  
      <meta>  
        <Value2>2.9</Value2>  
        <Value1>5.7</Value1>  
        <FileName>file4</FileName>  
        <FileName>file5</FileName>  
        <Quantity>2</Quantity>  
      </meta>  
   </gruppe>  
   <gruppe>  
      <meta>  
        <Value2>4.9</Value2>  
        <Value1>6.0</Value1>  
        <FileName>file3</FileName>  
        <Quantity>1</Quantity>  
      </meta>  
   </gruppe>  
   <gruppe>  
      <meta>  
        <Value2>4.0</Value2>  
        <Value1>10.0</Value1>  
        <FileName>file10</FileName>  
        <Quantity>1</Quantity>  
      </meta>  
   </gruppe>  
</FF>  

Du siehst: hier wird anhand des gleichen Value1 gruppiert. Innerhalb des Bereichs, den ich hier mit <gruppe> ausgebe mußt Du natürlich Deinen Code einbauen.
-- Skeeve