[xsl] Character alignment in table columns

Subject: [xsl] Character alignment in table columns
From: "N. Ganesh Babu" <ganesh@xxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 19 May 2005 12:37:23 +0530
Dear All,

My requirement is to do character alignment in the table columns while converting Cals table model into HTML table using XSLT.

Every thing looks fine for me. Even checking with Xalan also giving the correct output. But I can not able to see the character alignment either in IE or FireFox.

As the table includes math I am using FireFox.

XML Table:

<tablegrp id="t2">
<caption><p>Kinetic parameters extracted from a Tafel analysis of polarization curves obtained with various GDEs.</p></caption>
<table frame="topbot" colsep="0" rowsep="0" tabstyle="2col">
<tgroup cols="6">
<colspec colname="col1"/>
<colspec colname="col2"/>
<colspec colname="col3"/>
<colspec colname="col4" align="char" char="."/>
<colspec colname="col5" align="char" char="."/>
<colspec colname="col6" align="char" char="."/>
<thead valign="bottom">
<row rowsep="1">
<entry align="center">Temperature</entry>
<entry align="center">Cathode</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:msup>
<m:mi>j</m:mi>
<m:mi mathvariant="normal">o</m:mi>
</m:msup>
<m:mo>&#x2215;</m:mo>
<m:mrow>
<m:mo>&#x0028;</m:mo>
<m:mi mathvariant="normal">A</m:mi>
<m:mspace width="0.3em"/>
<m:msup>
<m:mi>cm</m:mi>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>2</m:mn>
</m:mrow>
</m:msup>
<m:mo>&#x0029;</m:mo>
</m:mrow>
</m:mrow>
</m:math></formula></entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mi>b</m:mi>
<m:mo>&#x2215;</m:mo>
<m:mrow>
<m:mo>&#x0028;</m:mo>
<m:mi>mV</m:mi>
<m:mspace width="0.3em"/>
<m:msup>
<m:mi>dec</m:mi>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>1</m:mn>
</m:mrow>
</m:msup>
<m:mo>&#x0029;</m:mo>
</m:mrow>
</m:mrow>
</m:math></formula></entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:msub>
<m:mi>E</m:mi>
<m:mn>0</m:mn>
</m:msub>
<m:mo>&#x2215;</m:mo>
<m:mrow>
<m:mo>&#x0028;</m:mo>
<m:mi mathvariant="normal">V</m:mi>
<m:mo>&#x0029;</m:mo>
</m:mrow>
</m:mrow>
</m:math></formula></entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mi>R</m:mi>
<m:mo>&#x2215;</m:mo>
<m:mrow>
<m:mo>&#x0028;</m:mo>
<m:mi>&#x03A9;</m:mi>
<m:mspace width="0.3em"/>
<m:msup>
<m:mi>cm</m:mi>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>2</m:mn>
</m:mrow>
</m:msup>
<m:mo>&#x0029;</m:mo>
</m:mrow>
</m:mrow>
</m:math></formula></entry>
</row>
</thead>
<tbody valign="top">
<row>
<entry align="center">25&#x00B0;C</entry>
<entry align="center">GDE-I</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>4.39</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>9</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">50.6</entry>
<entry align="char" char=".">1.01</entry>
<entry align="char" char=".">0.574</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-II</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>4.05</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>10</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">47.3</entry>
<entry align="char" char=".">0.976</entry>
<entry align="char" char=".">0.484</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-III</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>7.4</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>7</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">103.1</entry>
<entry align="char" char=".">1.01</entry>
<entry align="char" char=".">1.03</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-IV</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>1.09</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>9</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">45.0</entry>
<entry align="char" char=".">1.01</entry>
<entry align="char" char=".">0.675</entry>
</row>
<row>
<entry align="center">50&#x00B0;C</entry>
<entry align="center">GDE-I</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>4.16</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>9</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">50.5</entry>
<entry align="char" char=".">1.01</entry>
<entry align="char" char=".">0.322</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-II</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>1.65</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>9</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">47.9</entry>
<entry align="char" char=".">1.00</entry>
<entry align="char" char=".">0.284</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-III</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>3.13</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>8</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">72.8</entry>
<entry align="char" char=".">0.97</entry>
<entry align="char" char=".">0.752</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-IV</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>1.01</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>9</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">41.7</entry>
<entry align="char" char=".">1.02</entry>
<entry align="char" char=".">0.492</entry>
</row>
<row>
<entry align="center">75&#x00B0;C</entry>
<entry align="center">GDE-I</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>7.7</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>10</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">47.4</entry>
<entry align="char" char=".">0.988</entry>
<entry align="char" char=".">0.284</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-II</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>2.59</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>9</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">53.6</entry>
<entry align="char" char=".">0.984</entry>
<entry align="char" char=".">0.212</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-III</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>1.97</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>7</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">82.6</entry>
<entry align="char" char=".">1.01</entry>
<entry align="char" char=".">0.518</entry>
</row>
<row>
<entry></entry>
<entry align="center">GDE-IV</entry>
<entry align="center"><formula><m:math display="inline" xmlns:m="http://www.w3.org/1998/Math/MathML";>
<m:mrow>
<m:mn>1.42</m:mn>
<m:mo>&#x00D7;</m:mo>
<m:msup>
<m:mn>10</m:mn>
<m:mrow>
<m:mo>&#x2212;</m:mo>
<m:mn>9</m:mn>
</m:mrow>
</m:msup>
</m:mrow>
</m:math></formula></entry>
<entry align="char" char=".">44.6</entry>
<entry align="char" char=".">1.01</entry>
<entry align="char" char=".">0.313</entry>
</row>
</tbody>
</tgroup>
</table>
</tablegrp>

XSL Code:

<xsl:template match="tablegrp/caption">
</xsl:template>
<xsl:template match="table">
<table border="1" frame="{@frame}" colsep="{@colsep}" rowsep="{@rowsep}" tabstyle="{@tabstyle}"><caption><xsl:value-of select="../../tablegrp/caption/p"/>[[<xsl:value-of select="@tabstyle"/>]]</caption><xsl:apply-templates/></table>
</xsl:template>


<xsl:template match="colspec">
 <col char="{@char}" align="{@align}" colname="{@colname}"><xsl:apply-templates/></col>
</xsl:template>

<xsl:template match="thead">
 <thead valign="{@valign}"><xsl:apply-templates/></thead>
</xsl:template>

<xsl:template match="thead/row/entry">
 <th><xsl:apply-templates/></th>
</xsl:template>

<xsl:template match="row">
 <tr><xsl:apply-templates/></tr>
</xsl:template>

<xsl:template match="tgroup">
 <xsl:apply-templates/>
</xsl:template>

<xsl:template match="entry">
<td char="{@char}" align="{@align}"><xsl:apply-templates/></td> </xsl:template>


Please help me in resolving this problem.

Regards,
Ganesh

Current Thread