ritschmanhard: doppeltes xsl:for-each

Beitrag lesen

Hi nochmal!

Dann versuch ich's halt als Orakel:

Ich glaube jetzt verstanden zu haben, dass deine xml Datei aus, sagen wir mal, Datengruppen aufgebaut wie vorgeschlagen aufgebaut ist:
<el col1="A" col2="12" col3="88"/>
<el col1="A" col2="02" col3="188"/>
<el col1="B" col2="09" col3="818"/>
<el col1="B" col2="99" col3="81"/>

Und jetzt möchtest du ein html output, indem col1 nur jeweils einmal pro Gruppe aufgeführt ist ?

Nun gut:

(sei col1 ein kein rein nummersicher eintrag => type=text)

<xsl:for each select="./el">
<xsl:sort select = "./@col1" order="ascending" data-type="text"/>
  <xsl:variable name="compare">
    xsl:choose
      <xsl:when test="position()=1"></xsl:when>
      xsl:otherwise<xsl:value-of select="./@col1"/></xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:if test="./@col1!=$compare">
    <p>Nur einmal: <xsl:value-of select="./@col1"/></p>
  </xsl:if>
  <p>Jedesmal: <xsl:value-of select="./@col2"/> <xsl:value-of select="./@col3"/></p>
</xsl:for-each>

Mehr gibt die Kristallkugel leider nicht her.

Grüsse,
Richard