Re: [xsl] Sorting problem in xsl

Subject: Re: [xsl] Sorting problem in xsl
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 11 Apr 2005 11:42:55 +0100
> 	<xsl:when test="name()='draw:control'">

don't use name there, use

	<xsl:when test="self::draw:control">

which is namespace aware and generally nicer.

Although in this case the xsl:choose construct looks very odd, it seems
to be implementing apply-templates

why not just have

<xsl:template name="draw:text-box">
<Box>
<xsl:apply-tempaltes select="*">
</xsl:apply-templates>
</Box>
</xsl:template>

and then replace

<xsl:template name="draw:control'">

by 

<xsl:template match="draw:control'">

??



  <xsl:sort order="ascending"
  select="number(substring-before(./@svg:y,'inch'))"/>


here the number() function is not doing anything very much (it is just
stripping leading zeros) it is converting the string to a number but the
xsl:sort will convert that number back to a string and do a textual
lexicographic comparison. You don't want number() but you do want to add
 data-type="number"
to your xsl:sort elements to get numeric comparisons.

> How to do sort for x and x1, y and y1 ?

<xsl:sort order="ascending" data-type="number"
select="substring-before(@svg:x|svg@x1,'inch'))"/>
<xsl:sort order="ascending" data-type="number"
select="substring-before(@svg:y|svg@y1,'inch'))"/>
                               ^^^^^^^
David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. 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
________________________________________________________________________

Current Thread