<xsl:for-each...> letzter Durchlauf mit anderen Anweisungen
gant
- xsl
0 fjh
Hallo
Ich habe ein xsl-template, dass mit einer for-each - schleife werte darstellt:
<td class="textSmall" width="85%"><xsl:for-each select="dokumentschlagwoerter/schlagwort"><xsl:value-of select="."/>; </xsl:for-each></td>
Die Ausgabe dieser Schleife ergibt:
schlagwort1; schlagwort2; ...; schlagwortN;
Nun wäre es schön, wenn das letzte (;) nicht mehr angezeigt würde. Kennt jemand eine Möglichkeit, wie ich den letzten Schleifendurchlauf derart modifizieren kann? Was für eine Lösung wäre da sonst möglich?
Danke und Grüsse
gant
Hallo,
Nun wäre es schön, wenn das letzte (;) nicht mehr angezeigt würde. Kennt jemand eine Möglichkeit, wie ich den letzten Schleifendurchlauf derart modifizieren kann? Was für eine Lösung wäre da sonst möglich?
du musst einfach eine xs:if-Bedingung einbauen, die abfragt, ob der gegenwärtige Knoten nicht der letzte ist. Nur dann wird ; ausgegeben:
<?xml version="1.0"?>
<?xml-stylesheet href="schlagwort.xsl" type="text/xsl"?>
<schlagwoerter>
<schlagwort>schlagwort 1</schlagwort>
<schlagwort>schlagwort 1</schlagwort>
<schlagwort>schlagwort 1</schlagwort>
</schlagwoerter>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<title>Schlagwoerter</title>
</head>
<body>
<table>
<tr>
<xsl:for-each select="schlagwoerter/schlagwort">
<td>
<xsl:value-of select="."/>
<xsl:if test="not(position()=last())">
;
</xsl:if>
</td>
</xsl:for-each>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Gruß
Franz