RE: Show a column only if the total is not zero
If you're not worried about performance then this is a doddle. I'll give the schema-aware XSLT 2.0 version and leave you to retrofit it: <xsl:template match="person/element(*, xs:decimal) [sum(../../person/*[name()=name(current())]) != 0]"> <td><xsl:value-of select="."/></td> </xsl:template> That's a template that matches all children of <person> whose schema type is xs:decimal. You need another version (that does nothing) for the case where the total is zero. (There's another 2.0 dependency buried in here, by the way: current() is not allowed in 1.0 match patterns.) However, this calculates the total amount of overtime once for each record, which is O(n^2). To do better than this, calculate the totals first, and pass a list of the names of excluded elements (in 1.0 you could represent this list as a space-separated string) as a parameter to each of the templates. Michael Kay > -----Original Message----- > From: Richard Huxtable [mailto:huxtabler@xxxxxxxxx] > Sent: 18 May 2004 13:10 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Show a column only if the total is not zero > > The costs on a project look like this. > > <person> > <name>Adam</name> > <fees>134.25</fees> > <overtime>0.00</overtime> > <travel>39.25</travel> > </person> > <person> > <name>Brian</name> > <fees>172.50</fees> > <overtime>0.00</overtime> > <travel>52.75</travel> > </person> > <person> > <name>Chris</name> > <fees>103.75</fees> > <overtime>0.00</overtime> > <travel>0.00</travel> > </person> > > I would like the report on the project to look like this. > > name fees travel > Adam 134.25 39.25 > Brian 172.50 52.75 > Chris 103.75 0.00 > Total 410.50 92.00 > > There was no overtime on this project so I don't want it > shown. I should > be most grateful for any suggestions on the best way to show > the columns > where the total is not zero. (In practice I have more than 3 types of > cost.) > Many thanks.
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