Hi Guys
I still have a few problems with this. Here's my sample XML
RESULTS
concat('0', value) works brilliantly, except when there are negative
numbers (as I get '0-100'). There's always a catch
make it concat('0 ', value) and it will work.
Strangely, sum(value[.]) still gave NaN for Element A
Yes, I was not correct. If a node does not exist, sum(value[.]) will not raise
an error, it will return zero. If a node exists, but has no value, you can do
sum(value[number(.)]). That also works if the node has non-numeric values
(meaning: it will give a sum of zero if the values are non-numeric).
<xsl:for-each select="number">
Just out of curiosity, but why do you use for-each here? Using apply-templates
would work as well and is more adaptive to changes.
<xsl:value-of
select="format-number(number(concat('0', value)), '#,.00')"/></td>
It's a matter of design of course, but if you want this less nested and
(again) more adaptive to change, you can also code it like:
<td>
<xsl:apply-templates select="number" />
</td>
and:
<xsl:template match="number">
<xsl:value-of select="..." />
</xsl:template>
or, if you prefer (and that removes the whole issue of NaN):
<xsl:template match="number" priority="0">0.00</xsl:template>
<xsl:template match="number[number(.)]">
<xsl:value-of select="format-number(., '#,.00')" />
</xsl:template>
but to design it like that is of course largely a matter of taste ;)
Cheers,
-- Abel Braaksma
PS: not tested ;)
--~------------------------------------------------------------------
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>
--~--