Re: [xsl] attempt at dynamic sizing a table

Subject: Re: [xsl] attempt at dynamic sizing a table
From: Bryan Schnabel <bryan.schnabel@xxxxxxxxxxxxx>
Date: Thu, 24 Oct 2002 09:48:14 -0700 (PDT)
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@xxxxxxxxxxxxxxx> 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.schnabel@xxxxxxxxxxxxx>
> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
> 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@xxxxxxxxxxxxxxx> 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


Current Thread