XSL到HTML添加类

时间:2017-01-13 01:11:50

标签: html xslt html-table

我使用以下代码从SQL Query生成HTML表(在Oracle 11g上):

lXSL := lXSL || q'[<?xml version="1.0" encoding="ISO-8859-1"?>]';
lXSL := lXSL || q'[<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">]';
lXSL := lXSL || q'[ <xsl:output method="html"/>]';
lXSL := lXSL || q'[ <xsl:template match="/">]';
lXSL := lXSL || q'[   <table border="1">]';
lXSL := lXSL || q'[     <tr bgcolor="cyan">]';
lXSL := lXSL || q'[      <xsl:for-each select="/ROWSET/ROW[1]/*">]';
lXSL := lXSL || q'[       <th><xsl:value-of select="name()"/></th>]';
lXSL := lXSL || q'[      </xsl:for-each>]';
lXSL := lXSL || q'[     </tr>]';
lXSL := lXSL || q'[     <xsl:for-each select="/ROWSET/*">]';
lXSL := lXSL || q'[      <tr>]';    
lXSL := lXSL || q'[       <xsl:for-each select="./*">]';
lXSL := lXSL || q'[        <td><xsl:value-of select="text()"/> </td>]';
lXSL := lXSL || q'[       </xsl:for-each>]';
lXSL := lXSL || q'[      </tr>]';
lXSL := lXSL || q'[     </xsl:for-each>]';
lXSL := lXSL || q'[   </table>]';
lXSL := lXSL || q'[ </xsl:template>]';
lXSL := lXSL || q'[</xsl:stylesheet>]';

如何为每个列添加类,以便HTML看起来像这样:

<td class="col1">blah blah </td>
<td class="col2">blah blah </td>

1 个答案:

答案 0 :(得分:2)

您可以通过<xsl:attribute>添加类以及XPath函数position()提供的列数,如下所示:

<xsl:for-each select="/ROWSET/*">
    <tr>
        <xsl:for-each select="./*">
            <td>
                <xsl:attribute name="class" select="concat('col',position())"/>
                <xsl:value-of select="text()"/>
            </td>
        </xsl:for-each>
    </tr>
</xsl:for-each>