DaveP wrote
Now there's a feature that would help out XSL-FO!
Arithmetic that catered for 100mm+25mm and added them with a common unit!
<x>
<a>
<c width='10m'/>
<c width='3mm'/>
<c width='4mm'/>
<c width='6cm'/>
</a>
<a>
<c width='2mm'/>
<c width='3mm'/>
<c width='4.3mm'/>
<c width='3in'/>
<c width='3pt'/>
</a>
</x>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="data:,x"
version="2.0">
<xsl:template match="a">
[<xsl:value-of select="x:sum-widths(c/@width)"/>]
</xsl:template>
<xsl:function name="x:sum-widths">
<xsl:param name="x"/>
<xsl:value-of select="
format-number(sum(for $i in $x
return
if (ends-with($i,'mm')) then number(substring-before($i,'mm')) else
if (ends-with($i,'cm')) then 10*number(substring-before($i,'cm')) else
if (ends-with($i,'m')) then 100*number(substring-before($i,'m')) else
if (ends-with($i,'in')) then 25.4*number(substring-before($i,'in')) else
if (ends-with($i,'ft')) then 304.8*number(substring-before($i,'ft')) else
if (ends-with($i,'pt')) then 25.4*number(substring-before($i,'pt')) div 72
else
$i),'#.0#mm')
"/>
</xsl:function>
</xsl:stylesheet>
$ saxon7 lengths.xml lengths.xsl
<?xml version="1.0" encoding="UTF-8"?>
[1067.0mm]
[86.56mm]
--
http://www.dcarlisle.demon.co.uk/matthew
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________