|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] 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
|

Cart








