Re: [xslt] Problem with variables



Hello,

strange, when I run it, I get

  C:\Home\Igor\tmp>xsltproc b.xsl a.xml

    %25
    %25.5
    %25.480
    %25.48
  C:\Home\Igor\tmp>

But, I am using the current CVS version, not the 2.4.21 release. Perhaps the
problem you are having is gone in the meantime.

I would ask a question: I am puzzled about the meaning of the '%' character
in the format string. My book says that per-cent and per-mille characters
are allowed, but does not say what they are for, neither it provides an
example. To make things more puzzling, MSXSL gives a different result:

  C:\Home\Igor\tmp>msxsl -u 4.0 a.xml b.xsl

    %
    %.3
    %.255
    %.2548
  C:\Home\Igor\tmp>

Now, can someone tell me what the per-cent and per-mille characters in the
format string mean? Which processor from the two above produced the correct
result?

Ciao
Igor


> Can someone suggest whats going wrong here? I've had a look through the
> libxslt code, but can't find anything obvious.
>
> (Using Igor's Win32 binaries libxml2.2-4-21, libxslt1.0.17 on Win2000)
>
> a.xml:
> <?xml version="1.0"?>
> <AAA author="nicmila@idoox.com">
>      <BBB>bbb</BBB>
>      <CCC>ccc</CCC>
> </AAA>
>
> b.xsl:
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
> version="1.0">
> <xsl:output method="text"/>
> <xsl:variable name="G">0.2548</xsl:variable>
> <xsl:template match="/">
>   <xsl:text>
>   </xsl:text>
>   <xsl:value-of select="format-number($G,'%')"/>
>   <xsl:text>
>   </xsl:text>
>   <xsl:value-of select="format-number($G,'%#.#')"/>
>   <xsl:text>
>   </xsl:text>
>   <xsl:value-of select="format-number($G,'%#.000')"/>
>   <xsl:text>
>   </xsl:text>
>   <xsl:value-of select="format-number($G,'%#.#####')"/>
> </xsl:template>
> </xsl:stylesheet>
>
> C:\libxml\libxslt-1.0.17.win32\util>xsltproc b.xsl a.xml
> xsltproc c.xsl a.xml
> runtime error: file c.xsl line 4 element variable
> Global variable G already defined
> %25%25.5%25.480%25.48
>
> There appears to be two problems here:
> 1) The runtime error stating that variable "G" is already defined.
> 2) I'd expect the formatted numbers to each appear on new lines (but this
> could quite easily go down to a gap in my understanding of <xsl:text/>)
>
> Any ideas?





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]