Hallo Gemeinde!
Ich habe mehrere Tabellen zwischen 1 und 7 Spalten innerhalb eines XML Dokuments.
Aufgabe ist: Die breite der Zellen <TD> in <THEAD> und <TBODY> dynamisch aus <COL width="xx%"/> zu erzeugen und die Ausrichtung in <THEAD> und <TBODY> dynamisch zu Erzeugen <TD align="xx"/>
Meine XML Datei
<TABLE> <COL width="40%"/> <COL width="20%"/> <COL width="20%"/> <COL width="20%"/> <THEAD> <TR> <TD align="center"/> <TD align="center">bis zu einem Jahr EUR</TD> <TD align="center">zwischen einem und fünf Jahren<nZ/>EUR</TD> <TD align="center">mehr als 5 Jahre EUR</TD> </TR> </THEAD> <TBODY> <TR> <TD align="left"/> <TD align="center"/> <TD align="center"/> <TD align="center">0,00</TD> </TR> <TR> <TD align="left"/> <TD align="center"/> <TD align="center"/> <TD align="center">0,00</TD> </TR> </TBODY> </TABLE>
<TABLE> <COL width="66%"/> <COL width="17%"/> <COL width="17%"/> <THEAD> <TR> <TD align="left"/> <TD align="center">31.12.2006 <nZ/>EUR</TD> <TD align="center">31.12.2005 <nZ/>EUR</TD> </TR> </THEAD> <TBODY> <TR Hervorhebung="Hauptgruppe"> <TD align="left"><b>Umlaufvermögen</b></TD> <TD align="center"/> <TD align="right"/> </TR> <TR> <TD align="left">Zur Veräußerung bestimmte Anlagegegenstände</TD> <TD align="center"/> <TD align="right"/> </TR> <TR Hervorhebung="Summe"> <TD align="left"/> <TD align="right">5.604.623,97</TD> <TD align="right">7.824.666,55</TD> </TR> <TR> <TD align="left">Kassenbestand und Guthaben bei Kreditinstituten</TD> <TD align="right">2.540.493,04</TD> <TD align="right">1.244.653,27</TD> </TR> </TBODY> </TABLE>
Meine XSL Datei
<xsl:template match="TABLE/THEAD"> <!-- in jeder Zeile /tr) die Anzahl von Zellen (td). Die Erste Zeile nehmen --> <xsl:variable name="Anzahl_td" select="count(TR[1]/TD)"/> <table style="width:750px; margin-bottom:0px;"> <xsl:for-each select="TR"> xsl:choose <xsl:when test="($Anzahl_td) = 1"> <tr> <td><xsl:value-of select="TD[1]"/></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 2"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 3"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td> <xsl:value-of select="TD[2]"/> <br /> xsl:text </xsl:text> </td> <td> <xsl:value-of select="TD[3]"/> <br /> xsl:text </xsl:text> </td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 4"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> <td><xsl:value-of select="TD[4]"/></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 5"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> <td><xsl:value-of select="TD[4]"/></td> <td><xsl:value-of select="TD[5]"/></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 6"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> <td><xsl:value-of select="TD[4]"/></td> <td><xsl:value-of select="TD[5]"/></td> <td><xsl:value-of select="TD[6]"/></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 7"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> <td><xsl:value-of select="TD[4]"/></td> <td><xsl:value-of select="TD[5]"/></td> <td><xsl:value-of select="TD[6]"/></td> <td><xsl:value-of select="TD[7]"/></td> </tr> </xsl:when> xsl:otherwise <xsl:value-of select="." /> </xsl:otherwise>
</xsl:choose> </xsl:for-each> </table> </xsl:template>
<xsl:template match="TABLE/TBODY"> <!-- in jeder Zeile (tr) die Anzahl von Zellen (td). Die erte Zeile nehmen --> <xsl:variable name="Anzahl_td" select="count(TR[1]/TD)"/> <table style="width:750px;"> <xsl:for-each select="TR"> xsl:choose
<!-- Hervorhebung beginn --> <xsl:when test="@Hervorhebung='Hauptgruppe'"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> </tr> </xsl:when> <xsl:when test="@Hervorhebung='Summe'"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> </tr> </xsl:when> <xsl:when test="@Hervorhebung='Zwischensumme'"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> </tr> </xsl:when> <xsl:when test="@Hervorhebung='Hauptposition'"> <tr> <td><xsl:value-of select="TD[1]"/></td> <td><xsl:value-of select="TD[2]"/></td> <td><xsl:value-of select="TD[3]"/></td> </tr> </xsl:when> <!-- Hervorhebung ende -->
<!-- Anzahl der Zellen pro Zeile beginn --> <xsl:when test="($Anzahl_td) = 1"> <tr> <td><xsl:value-of select="TD[1]" /></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 2"> <tr> <td><xsl:value-of select="TD[1]" /></td> <td><xsl:value-of select="TD[2]" /></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 3"> <tr> <td><xsl:value-of select="TD[1]" /></td> <td><xsl:value-of select="TD[2]" /></td> <td><xsl:value-of select="TD[3]" /></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 4"> <tr> <td><xsl:value-of select="TD[1]" /></td> <td><xsl:value-of select="TD[2]" /></td> <td><xsl:value-of select="TD[3]" /></td> <td><xsl:value-of select="TD[4]" /></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 5"> <tr> <td><xsl:value-of select="TD[1]" /></td> <td><xsl:value-of select="TD[2]" /></td> <td><xsl:value-of select="TD[3]" /></td> <td><xsl:value-of select="TD[4]" /></td> <td><xsl:value-of select="TD[5]" /></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 6"> <tr> <td><xsl:value-of select="TD[1]" /></td> <td><xsl:value-of select="TD[2]" /></td> <td><xsl:value-of select="TD[3]" /></td> <td><xsl:value-of select="TD[4]" /></td> <td><xsl:value-of select="TD[5]" /></td> <td><xsl:value-of select="TD[6]" /></td> </tr> </xsl:when> <xsl:when test="($Anzahl_td) = 7"> <tr> <td><xsl:value-of select="TD[1]" /></td> <td><xsl:value-of select="TD[2]" /></td> <td><xsl:value-of select="TD[3]" /></td> <td><xsl:value-of select="TD[4]" /></td> <td><xsl:value-of select="TD[5]" /></td> <td><xsl:value-of select="TD[6]" /></td> <td><xsl:value-of select="TD[7]" /></td> </tr> </xsl:when> xsl:otherwise <xsl:value-of select="." /> </xsl:otherwise> <!-- Anzahl der Zellen pro Zeile ende -->
</xsl:choose> </xsl:for-each> </table> </xsl:template>
Kennt hier jemand eine Lösung bitte?
Vielen Danke Charli