daten in tabelle neben einander anzeigen.
fredy
- xsl
Hi!
ich möchte gerne meine XML-Daten in einer Tabelle via. XSL ausgeben, wobei immer 2 Datensätze in einer TR in zwei verschiedenen TDs erscheinen sollen.
Datensatz1 Datensatz2
Datensatz3 Datensatz4
Datensatz5
Das funzt auch soweit, aber:
Da es sein kann, daß es eine ungerade anzahl an Datensätzen gibt, soll im oben angeführten Bsp. anstall Datensatz6 ein leeres TD (<TD> </td>) ausgegeben werden.
Wie kann ich das überprüfen?
Mein Code (der ja schon bei einer geraden Anzahl von Datensätzen funzt) ist diesem Posting angehängt.
Danke
fredy
_____ Mein Code _____
<xsl:template match="ausgabe">
<xsl:if test="(position() mod 2) = 1">
<TR>
<td height="30" width="133"> .... text .... </td>
<td width="10"> ... Grafik ... </td>
<td width="18" align="left" valign="middle"> .... </td>
<td width="443" valign="middle"><xsl:value-of select="../product/following-sibling::ausgabe"/></td>
<td><![CDATA[ ]]></td>
<!-- Wenn es noch einen 2. gibt -->
<xsl:if test="../product/following-sibling::ausgabe[. != '']">
<td height="30" width="133"> .... text .... </td>
<td width="10"> ... Grafik ... </td>
<td width="18" align="left" valign="middle"> .... </td>
<td width="443" valign="middle"><xsl:value-of select="../product/following-sibling::ausgabe"/></td>
</xsl:if>
<!-- Sonst -->
<xsl:if test="../product/following-sibling::ausgabe[. = '']">
<td colspan="3"><![CDATA[ ]]></td>
</xsl:if>
</TR>
</xsl:if>
</xsl:template>
Hallo!
<xsl:template match="ausgabe">
<xsl:variable name="ungerade" select="(count(.) mod 2) =1" />
.
.
.
<xsl:if test="$ungerade">
<td> </td>
</xsl:if>
Ist es das?
Grüße
Thomas
Hallo!
Es geht so eigentlich besser/eleganter:
<xsl:template match="ausgabe">
<xsl:variable name="ungerade" select="count(.) mod 2" />
.
.
.
<xsl:if test="$ungerade = 1">
<td> </td>
</xsl:if>
Grüße
Thomas
Hi Thomas!
Danke für Deine 2 Lösungsansätze. (Ich hab' wieder mal zu kompliziert gedacht ...)
Grüße
fredy
Hallo!
Es geht so eigentlich besser/eleganter:
<xsl:template match="ausgabe">
<xsl:variable name="ungerade" select="count(.) mod 2" />
.
.
.
<xsl:if test="$ungerade = 1">
<td> </td>
</xsl:if>Grüße
Thomas