![]() |
![]() | ![]() | ![]() | Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries >Thread Prev - Re: Problem using msxml >Thread Next - Re: Problem using msxml Re: Problem using msxmlTo: NULL Date: 9/8/2004 12:21:00 AM Thanks for the reply, I have actually gone with Joe's solution above, as our
datafiles can be quite large, and predominantly numbers. I there suspect
the petrformance of further template calls (especially the number that would
be required) if a function is available.
Thanks for the post,
Hugh
"Marrow" wrote:
> Hi Darren,
>
> You could write a template to handle exponential notation numbers, something
> like...
>
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:fo="http://www.w3.org/1999/XSL/Format">
>
> <xsl:template match="stuff">
> <xsl:text>Value: </xsl:text>
> <xsl:call-template name="exnumber"/>
> <xsl:text>
</xsl:text>
> </xsl:template>
>
> <xsl:template name="exnumber">
> <xsl:param name="n" select="."/>
> <xsl:choose>
> <xsl:when test="contains($n,'E')">
> <xsl:variable name="nv" select="substring-before($n,'E')"/>
> <xsl:variable name="nexp" select="substring-after($n,'E')"/>
> <xsl:variable name="exp"
> select="substring('1000000000000000000000000000000',1,translate($nexp,'-',''
> )+1)"/>
> <xsl:choose>
> <xsl:when test="$nexp >= 0">
> <xsl:value-of select="$nv * $exp"/>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="$nv div $exp"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:when>
> <xsl:otherwise>
> <xsl:value-of select="$n"/>
> </xsl:otherwise>
> </xsl:choose>
> </xsl:template>
> </xsl:stylesheet>
>
>
> HTH
> Marrow
> http://www.marrowsoft.com - home of Xselerator (XSLT IDE and debugger)
> http://www.topxml.com/Xselerator
>
>
> "darren@w..." <darren@w...@discussions.microsoft.com> wrote in
> message news:B41E4F0B-C97F-452F-8220-1326DE921065@m......
> > I have an xml file:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <myspace>
> > <stuff>5.6</stuff>
> > <stuff>1.27E-2</stuff>
> > </myspace>
> >
> > I have a stylesheet:
> > <?xml version="1.0" encoding="UTF-8"?>
> > <xsl:stylesheet version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > xmlns:fo="http://www.w3.org/1999/XSL/Format">
> >
> > <xsl:template match=".//stuff">
> > Value: <xsl:value-of select="number(.)"/>
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> >
> > I expect the results:
> > <?xml version="1.0" encoding="UTF-8"?>
> > Value: 5.6
> > Value: 0.0127
> >
> > The results I get:
> > <?xml version="1.0" encoding="UTF-16"?>
> > Value: 5.6
> > Value: NaN
> >
> > The parser doesn't seem to support exponential notation for numbers!
> > Is this true, or am I doing something wrong?
> > Is there a work around, as I have a lot of data from excel spreadsheets
> > that use this notation, and my style sheets are not working well with
> it!!!
> >
> >
> > Hugh
> >
>
>
>
| ![]() | ![]() | ![]() |
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | |||||
|
