xsl-list
[Top] [All Lists]

Re: Count a substring of an attribute in childnodes

2005-03-09 05:22:22
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--