[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Add numbers
<xsl:template match="first/second[1]"> <xsl:param name="sum">0</xsl:param> <xsl:apply-templates select="following-sibling::first/second"> <xsl:with-param name="sum" select="sum(a/@val)" /> </xsl:apply-templates> <xsl:if test="not(following-sibling::first/second)"> <xsl:value-of select="$sum + sum(a/@val)" /> </xsl:if> </xsl:template> On 10/9/07, Chaudhary, Harsh <HCHAUDHA@xxxxxxxxx> wrote: > Hi, > > I have an XML: > > <?xml version="1.0" encoding="UTF-8"?> > <first> > <second> > <a val="4" key="one">b</a> > <a val="2" key="two">b</a> > </second> > <second> > <a val="3" key="one">c</a> > </second> > </first> > > I need to group together the nodes which have the same key and then I > need to add the attribute "val" in all such cases. > > So, The output I need is: > > <op> > <one> > <val>7</val> > </one> > <two> > <val>2</val> > </two> > </op> > > How do I go about doing this? I am using Xalan and XSLT 1.0. > > I have used the Meunichian method to group the nodes with same keys > together. But I don't know how to proceed from there. I tried using the > sum() function but it won't work for me on account that even if I run a > for-each loop over the set of nodes with the same key, it just prints > out the value of "val" for each a element. I think I need to be in the > parent element for this to work. > > Thanks, > Harsh.
|
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
|