Re: [xsl] Count a substring of an attribute in childnodes

Subject: Re: [xsl] Count a substring of an attribute in childnodes
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 9 Mar 2005 23:22:22 +1100
> Using FXSL for XSLT 2.0 one can write:
> 
> <xsl:stylesheet version="2.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> xmlns:f="http://fxsl.sf.net/";
> xmlns:func-transform="f:func-transform"
> exclude-result-prefixes="f func-transform"
> >
>   <xsl:import href="../f/func-transform-and-sum.xsl"/>
> 
>   <!-- to be applied on testTransform-and-sum1.xml -->
> 
>   <xsl:output method="text"/>
> 
>    <xsl:template match="/">
>      <xsl:value-of select=
>      "f:transform-and-sum(document('')/*/func-transform:*[1],
>                                           /*/*/@colwidth)"/>
>    </xsl:template>
> 
>    <func-transform:func-transform/>
>    <xsl:template match="func-transform:*" mode="f:FXSL">
>      <xsl:param name="arg1"/>
>      <xsl:value-of select="translate($arg1, '*', '')"/>
>    </xsl:template>
> </xsl:stylesheet>

And there are some more powerful ways to achieve this with FXSL for XSLT 2.0:

   "sum(f:map(f:flip(f:substring-before(), '*'), 
                        /*/*/@colwidth
                        )
             )"

or


   "f:transform-and-sum(f:flip(f:substring-before(), '*'), 
                                        /*/*/@colwidth
                                         )"


Cheers,

Dimitre Novatchev

Current Thread