xsl-list
[Top] [All Lists]

RE: Calculations involving measurements with units

2004-01-03 05:43:23
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(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Paul A. Hoadley
Sent: 03 January 2004 03:20
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)logicsquad(_dot_)net 
mailto:phoadley(_at_)maths(_dot_)adelaide(_dot_)edu(_dot_)au

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


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