[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] Calculations involving measurements with units


Subject: RE: [xsl] Calculations involving measurements with units
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Sat, 3 Jan 2004 12:43:23 -0000

XSLT 2.0 lets you write stylesheet functions that can be called from
within an XPath expression, which solves this problem.

In 1.0 you could try breaking the expression up by using variables, but
of course these can't take arguments in the way that a template or
function can.

Michael Kay

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of 
> Paul A. Hoadley
> Sent: 03 January 2004 03:20
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] Calculations involving measurements with units
> 
> 
> Hello,
> 
> On Fri, Jan 02, 2004 at 11:08:38PM +1030, Paul A. Hoadley wrote:
> 
> > <xsl:variable name="upper-margin" 
> > select="concat(number(translate($page-height, 
> translate($page-height, 
> > '0123456789.', ''), '')) div 3.75, translate($page-height, 
> > '012345679.', ''))"/>
> 
> How can I neaten this up?  I've written two templates:
> 
>   <xsl:template name="getUnits">
>     <xsl:param name="input"/>
>     <xsl:value-of select="translate($input, '012345679.', '')"/>
>   </xsl:template>
> 
>   <xsl:template name="stripUnits">
>     <xsl:param name="input"/>
>     <xsl:value-of select="translate($input, translate($page-height,
>                           '012345679.', ''), '')"/>
>   </xsl:template>
> 
> This would seem to only _increase_ the verbosity of what I 
> have quoted above, since now I can't call the templates 
> inside the 'select' of the variable declaration.  What is the 
> standard idiom here?
> 
> 
> -- 
> Paul.
> 
mailto:paulh@xxxxxxxxxxxxxx mailto:phoadley@xxxxxxxxxxxxxxxxxxxxx

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Current Thread
Keywords