|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Count a substring of an attribute in childnodes
> 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
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








