Subject: RE: [xsl] get the sum of a sequence of numbers From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Wed, 26 Apr 2006 22:05:40 +0100 |
> That does not seem to work in this situation. Gives the wrong answer? Gives an error message? Catches fire? It's a lot easier to diagnose problems when you know what the symptoms are. > > <xsl:variable name="mbt" select="sum(for $n in > number($mb) return number($n))"/> number($mb) is going to produce a single number as its result. So this is the same as select="sum(number($mb))" which is the same as select="number($mb)". I don't know what $mb is, but if it's a sequence of strings that can be converted to numbers then you want > <xsl:variable name="mbt" select="sum(for $n in $mb return number($n))"/> that is, you want to convert the strings to numbers individually. However, $mb isn't a sequence of strings, because you declared it as: <xsl:variable name="mb"> <xsl:apply-templates mode="mb"/> </xsl:variable> which means $mb is actually a single document node; so the "for" expression isn't going to do anything useful. I can't tell how to correct this without knowing what's coming back from the apply-templates. > Do I need to define the data type of the sequence? It never does any harm, and it sometimes means you get better diagnostics (or error messages rather than empty output). Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] get the sum of a sequence, Karen McAdams | Thread | [xsl] Problem involving xmlns names, Pankaj Bishnoi |
RE: [xsl] get the sum of a sequence, Karen McAdams | Date | Re: [xsl] split string to whole wor, David Carlisle |
Month |