Are you asking how to plug that ratio in, along with
the unit?
It's pretty simple I think:
concat(string-length() * 12,'pt')
like this
<xsl:template match="table">
<xsl:variable name="product" select="string-length()
* 12"/>
<tabl>
<xsl:for-each select="row/cell[1]">
<xsl:sort data-type="number" order="descending"
select="string-length()"/>
<xsl:if test="position()=1">
<table-column
column-width="{concat(string-length() * 12,'pt')}" />
</xsl:if>
</xsl:for-each>
<xsl:for-each select="row/cell[2]">
<xsl:sort data-type="number" order="descending"
select="string-length()"/>
<xsl:if test="position()=1">
<table-column
column-width="{concat(string-length() * 12,'pt')}" />
</xsl:if>
</xsl:for-each>
<xsl:for-each select="row/cell[3]">
<xsl:sort data-type="number" order="descending"
select="string-length()"/>
<xsl:if test="position()=1">
<table-column
column-width="{concat(string-length() * 12,'pt')}" />
</xsl:if>
</xsl:for-each>
</tabl>
</xsl:template>
Am I understanding your question?
Bryan Schnabel
--- Noel Golding <noel(_at_)spearreport(_dot_)com> wrote:
is it possible to set a column-width to pt? That
would be ok. If I had 12
characters at 12pt that would make the column-width
144pt. Is that
feasible?
Thanks!!
----- Original Message -----
From: "Bryan Schnabel"
<bryan(_dot_)schnabel(_at_)bschnabel(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Wednesday, October 23, 2002 7:23 PM
Subject: Re: [xsl] attempt at dynamic sizing a table
An approach would be to isolate, sort, then put
the
top value in the attribute, like this:
<xsl:template match="table">
<tabl>
<xsl:for-each select="row/cell[1]">
<xsl:sort data-type="number"
order="descending"
select="string-length()"/>
<xsl:if test="position()=1">
<table-column
column-width="{string-length()}"
/>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="row/cell[2]">
<xsl:sort data-type="number"
order="descending"
select="string-length()"/>
<xsl:if test="position()=1">
<table-column
column-width="{string-length()}"
/>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="row/cell[3]">
<xsl:sort data-type="number"
order="descending"
select="string-length()"/>
<xsl:if test="position()=1">
<table-column
column-width="{string-length()}"
/>
</xsl:if>
</xsl:for-each>
</tabl>
</xsl:template>
I don't think I understand the second part of your
question. But to convert string-length to cm or
in
would involve determining the 'character to cm
ratio',
or the 'character to in ratio' (which I cannot
imagine) and plug it in.
Bryan
--- Noel Golding <noel(_at_)spearreport(_dot_)com> wrote:
If given the XML below how could you determine
the
max-string-length for
each column and then how would you convert that
to
cm or in? I hope I am
clear enough
--XML--
<table>
<row>
<cell>
A.
</cell>
<cell>
B.
</cell>
<cell>
C.
</cell>
</row>
<row>
<cell>
There is some text here
</cell>
<cell>
More text
</cell>
<cell/>
</row>
<row>
<cell>
A little text
</cell>
<cell>
This cell contains more text than the one
before
</cell>
<cell>
Something goes here!!
</cell>
</row>
</table>
--Desired Output--
<table>
<table-column column-width="5cm" /> <!-- Second
widest -->
<table-column column-width="8cm" /> <!-- Widest
-->
<table-column column-width="4cm" /> <!--
Smallest
-->
...
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive:
http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list