Tim Tepaße: Gruppierung von Elementen

Beitrag lesen

Hallo,

Es soll halt immer eine Überschrift gemacht werden für welche Personenanzahl die folgenden Zeiträume Pro gelten.
Und solange wie die Personanzahl gleich bleibt soll also keine Überschrift kommen.

Du willst also die Objekte gruppieren. In XSLT 2.0 wurde wohl genau wegen solcher Anwendungsfälle wohl xsl:for-each-group eingeführt.

Rein nach Lesen der Spezifikation und insbesondere der Beispiele dort, müsste das wohl so aussehen, ungetestet:

~~~xml <xsl:for-each select="./objectCosts/objectCostsPart">
     <h2>
         xsl:textAbteilung </xsl:text>
         <xsl:value-of select="./@id"/>
     </h2>
     <xsl:for-each-group select="./objectCost" group-by="@adults as xs:integer">
         <h3>
             xsl:textFür </xsl:text>
             <xsl:value-of select="current-grouping-key()">
             xsl:text Person(en)</xsl:text> <!-- Kann man schöner machen -->
         </h3>
         <ul>
             <xsl:for-each select="current-group()">
                 <li><xsl:value-of select="."/></li>
             </xsl:for-each>
         </ul>
      </xsl:for-each-group>
      <hr/>
  </xsl:for-each>

  
  
Tim