Subject: RE: [xsl] Calculating Column Total From: Shashank Jain <shashankjain@xxxxxxxx> Date: Fri, 2 Apr 2010 10:25:04 -0500 |
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@xxxxxxxxx > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > CC: shashankjain@xxxxxxxx > 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> > _________________________________________________________________ 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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Balisage Submissions due in T, Balisage Conference | Thread | [xsl] Replace nodes in xml file, Suresh |
[xsl] Balisage Submissions due in T, Balisage Conference | Date | RE: [xsl] conditional based html fo, Michael Kay |
Month |