Subject: Re: [xsl] Count a substring of an attribute in childnodes From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Wed, 9 Mar 2005 22:18:08 +1100 |
> In XSLT11 you have to use a recursive template to accumulate the sum by > hand adding a new value on each iteration, you could use one of > Dimitre's FXSL procedures for example, or just code it directly. > > David > Yes, this transformation: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:func-transform="f:func-transform" exclude-result-prefixes="xsl func-transform" > <xsl:import href="transform-and-sum.xsl"/> <!-- to be applied on testTransform-and-sum1.xml --> <xsl:output method="text"/> <func-transform:func-transform/> <xsl:template match="/"> <xsl:call-template name="transform-and-sum"> <xsl:with-param name="pFuncTransform" select="document('')/*/func-transform:*[1]"/> <xsl:with-param name="pList" select="/*/*/@colwidth"/> </xsl:call-template> </xsl:template> <xsl:template match="func-transform:*"> <xsl:param name="arg" select="0"/> <xsl:value-of select="translate($arg, '*', '')"/> </xsl:template> </xsl:stylesheet> when applied on the source xml file: <tgroup cols="3" colsep="0" rowsep="0" align="left"> <colspec colname="1" colwidth="100*" /> <colspec colname="2" colwidth="200*" /> <colspec colname="3" colwidth="300*" /> </tgroup> produces the wanted result: 600 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> Cheers, Dimitre Novatchev
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Count a substring of an a, David Carlisle | Thread | Re: [xsl] Count a substring of an a, Dimitre Novatchev |
[xsl] performance issues, tom . kirkpatrick | Date | RE: [xsl] performance issues, Michael Kay |
Month |