Thomas J.S.: alphabetische Ausgabe

Beitrag lesen

Hallo,

bringt mich jetzt in andere Schwierigkeiten.

...
<gat>Dahlien
  <art>Die Dahlie</art>
</gat>
<gat>Astern
  <art>Die Strandaster</art>
  <art>Die Herbstaster</art>
</gat>
...

Was mache ich den bitte wenn ich z.B. Astern (im Gegensatz zu Dahlien) mit einer anderen Farbe oder Hintergrund ausgeben will. <gat1> und <gat2> kann ich ja nicht mehr schreiben. Vielleicht mit Attributen, aber wie?

Geht es um die HTML-Ausgabe oder um relevaten Informationen, die sich auf die Informationen im XML beziehen (<g>Astern</g>, <g>Rote Astern</g>)?

Wenn's nur um HTML geht:

<xsl:for-each select="gat">
   <xsl:sort select="." /> (data-type="text" ist default, muss du nicht extrea angeben)
   <div>
   <xsl:attribute name="class">
 xsl:choose
  <xsl:when test="position() mod 2 = 0">rot</xsl:when>
  xsl:otherwiseblau</xsl:otherwise>
 </xsl:choose>
</xsl:attribute>

<xsl:value-of select="child::text()"/>
...

damit stellst du die divs abwechselnd einmal mit der und einmal mit der Klasse dar.

WEnn du gnz eigene Farben haben willst: dann entweder über ein Attribut im XML, oder du fragst den TExt m XML ab:

xsl:attribute name="class">
 xsl:choose
  <xsl:when test="child::text() = 'dies'">klasse1</xsl:when>
<xsl:when test="child::text() = 'das'">klasse2</xsl:when>
...
  xsl:otherwisedefaultklasse</xsl:otherwise>
 </xsl:choose>
</xsl:attribute>

Grüße
Thomas