2017-01-13 4 views
0

Ich verwende folgenden Code zu HTML-Tabelle von SQL Query (auf Oracle 11g) zu generieren:XSL in HTML hinzufügen Klasse

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>]'; 

Was kann ich für jede Spalte hinzuzufügen Klasse so das HTML wie folgt aussieht:

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

Antwort

1

Sie können die Klasse über <xsl:attribute> und die Spaltenanzahl hinzufügen, die von der XPath-Funktion position(), wie so vorgesehen ist:

<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>