xsl-list
[Top] [All Lists]

Re: go from double to integer OR show just 1 or 0 decimals

2005-07-28 00:57:01
Hi again,

Thanks for explanation - however, I cannot make it work, and I'm
struggling to understand this line:

<xsl:variable name="pic" select="$formats/format[unitCode =
current()/../@unitCode]/@picture"/>

To me, it seems that here are too many backward-steps: /../ shouldn't
it be ../ instead?

I'm using the following sample XML, and it spits out 6.00 no matter
what the unitCode is:

XML:
====
<?xml version="1.0" encoding="UTF-8"?>
<members>
          <ThroughputStructure unitCode="kg">
                <InputQuantity>6.00</InputQuantity>
                <OutputQuantity>28.00</OutputQuantity>
          </ThroughputStructure>
</members>

XSL:
====
<?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:variable name="formats">
 <format unitCode="months" picture="#0"/>
 <format unitCode="kg" picture="0.###"/>
</xsl:variable>


<xsl:template match="members">
members-template is matched!
<xsl:apply-templates select="ThroughputStructure"></xsl:apply-templates>
</xsl:template>

<xsl:template match="members/ThroughputStructure">
        <xsl:apply-templates select="InputQuantity"></xsl:apply-templates>
        Throughput-template is matched!
</xsl:template>

<xsl:template match="members/ThrougputStructure/InputQuantity">
 <xsl:variable name="pic" select="$formats/format[unitCode
=current()/../@unitCode]/@picture"/>
 <xsl:value-of select="format-number(., $pic)"/>
</xsl:template>

</xsl:stylesheet>


On beforehand, thanx for helping :-)
/Christian





On 7/28/05, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
The neat way to do this is

<xsl:variable name="formats">
  <format unitCode="months" picture="#0"/>
  <format unitCode="kg" picture="0.###"/>
</xsl:variable>

<xsl:template match="gr:InputQuantity">
  <xsl:variable name="pic" select="$formats/format[unitCode =
current()/../@unitCode]/@picture"/>
  <xsl:value-of select="format-number(., $pic)"/>
</xsl:template>

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Christian Rasmussen [mailto:byggemandbob(_at_)gmail(_dot_)com]
Sent: 27 July 2005 22:34
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] go from double to integer OR show just 1 or 0 decimals

Hi Experts,

I have a som xml like this:


          <gr:ThroughputStructure unitCode="months">
            <gr:InputQuantity>6.00</gr:InputQuantity>
            <gr:OutputQuantity>28.00</gr:OutputQuantity>
          </gr:ThroughputStructure>

The unitCode attribute of ThroughputStructure is enummerations and can
hold one of following values:
- days
- months
- kg
- numbers

The inputQuantity and OutputQuantity is double types, mainly because
of situations where the unitCode is numbers or kg, but if the unitCode
is days or months, there is really no need for two decimals.

What I would like to do is:

make a template that matches InputQuantity and OutputQuantity, and if
the ../ThroughputStructure/@unitCode is months or days, then the
format for the inputQuantity OutputQuantity need just to be integer or
double without decimals (then there should be som round up...new
problem, how is that done?).

Is that possible? Is it possible to round up the decimals and just
show one, or strip them totally, or convert to integer?

Help is very much appreciated :-)

on beforehand, thank you!

/Christian Rasmussen

--~------------------------------------------------------------------
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>
--~--





--~------------------------------------------------------------------
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>
--~--



--~------------------------------------------------------------------
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>
--~--



<Prev in Thread] Current Thread [Next in Thread>