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