xsl-list
[Top] [All Lists]

Re: attempt at dynamic sizing a table

2002-10-23 16:23:11
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