Thanks David for correcting and explaining me how to select the context node in
functions.
Your solution really helped me.
Thanks again.
Shashank
Date: Tue, 30 Mar 2010 22:49:34 +0100
From: davidc(_at_)nag(_dot_)co(_dot_)uk
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
CC: shashankjain(_at_)live(_dot_)com
Subject: Re: [xsl] Calculating Column Total
On 30/03/2010 22:20, Shashank Jain wrote:
Thanks David for explaining what I was doing wrong.
I am still stuck in the calculation for every event.
<data>
<event_template sp_mand_doctypes="Research Note, Prior Stock Report, Stock
Report">
<event complete='Y' complete_percent='100.0'/>
<event complete='N' complete_percent='0.0'/>
</event_template>
<event_template sp_mand_doctypes=" Prior Stock Report, Stock
Report">
<event complete='Y'complete_percent='100.0'/>
<event complete='N'complete_percent='0.0'/>
<event complete='N'complete_percent='50.0'/>
<event
complete='Y'/>
</event_template>
</data>
and I am using this xsl
<xsl:template match="/">
<xsl:sequence select="sum(//event/fns:f(.))"/>
</xsl:template>
<xsl:function name="fns:f">
<xsl:param name="x" as="element()"/>
<xsl:choose>
<xsl:when test="$x/@complete='Y'">
<xsl:value-of select="number(0)"/>
number(0) is the same as 0, but in either case you have converted it to
a text node with the decimal expansion of the number by using value-of,
use xsl;sequence instead.
</xsl:when>
<xsl:when test="$x/@complete_percent='0.0'">
*********am not able to pass value in the variable
"mandatoryDocs"*********************
<xsl:variable name="mandatoryDocs"
select="parent::event_template/@sp_mand_doctypes"/>
you can't evaluate parent::event_template or any relative xpath as there
is no context node in the body of a function. You want the parent of the
$x parameter so that's select="$x/../@sp_mand_doctypes
<xsl:variable name="strArray"
select="tokenize($mandatoryDocs,',')"/>
<xsl:value-of select="number(count($strArray))"/>
again there's no point in applying number() to count() as it's already
an integer, but don't apply xsl:value-of to that.
</xsl:when>
</xsl:choose>
</xsl:function>
--~------------------------------------------------------------------
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>
--~--
_________________________________________________________________
Hotmail is redefining busy with tools for the New Busy. Get more from your
inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_2
--~------------------------------------------------------------------
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>
--~--