xsl-list
[Top] [All Lists]

Re: String length question

2004-10-21 16:25:31
Márcio Ferreira wrote:

I want to now the sum of the lengths of attribute descriptions in the
xml below

<folder description="Ngin Mart">
    <folder description="Clientes"/>
    <folder description="Desempenho"/>
    <folder description="MyReports">
</folder>

I have tried this:

<xsl:template match="folder mode="left_menu">
   <xsl:variable name="sizeTotal"  select = 
'string-length(descendant::folder/@description)'/>
   <table border="0" cellspacing="0" cellpadding="0" 
width="{count(folder)*$sizeTotal}">
     <tr>
       <xsl:apply-templates select="folder" mode="left_menu"/>
     </tr>
   </table>
 </xsl:template>

The variable "sizeTotal" will be the width of the table.

But don’t work.

Hi Márcio,

I think "string-length(descendant::folder/@description)" will only test one description attribute (the first in document order).

Possible solution: first collect all the descriptions inside a variable, then use string-length on that variable:

<xsl:template match="folder" mode="left_menu">
<xsl:variable name="all-descriptions">
<xsl:copy-of select="descendant::folder/@description"/>
</xsl:variable>
<xsl:variable name="sizeTotal" select="string-length($all-descriptions)"/>
...
</xsl:template>

HTH,
Anton


<Prev in Thread] Current Thread [Next in Thread>