產生出來的 HTML 表格如下:
html 的 table 可以使用 colspan=N 來控制合併儲存格的數量, 如果想使用 xsl 產生 .csv 的檔案出來, 要怎麼產生出對應該的儲存格間距呢? 我的解法是透過 xsl 的副程式來解決, 計算儲存格間距的問題.
步驟1: 第1層要增加的tab 數(level1tabs)
= (第3層的數量 x 第2層的數量) - 1
= (2 x 3) -1
= 5
<xsl:variable name="level1tabs"><xsl:value-of select="($level3count*$fieldCount)-1"/></xsl:variable>
步驟2: 呼叫副程式, 並傳入變數5
<xsl:call-template name="outputTabs"><xsl:with-param name="maxNum"><xsl:value-of select="$level1tabs"/></xsl:with-param></xsl:call-template>
步驟3: 被呼叫的副程式如下:
<xsl:template name="outputTabs">
<xsl:param name="currentNum">1</xsl:param>
<xsl:param name="maxNum"/><![CDATA["" ]]><xsl:if test="$maxNum!=''"><xsl:if test="$currentNum < $maxNum"><xsl:call-template name="outputTabs">
<xsl:with-param name="currentNum"><xsl:value-of select="$currentNum + 1" /></xsl:with-param>
<xsl:with-param name="maxNum"><xsl:value-of select="$maxNum" /></xsl:with-param>
</xsl:call-template></xsl:if></xsl:if></xsl:template>
update: 2012-08-22, 副程式升級, 可以自行定義要輸出的符號.
沒有留言:
張貼留言