View Single Post
  #4 (permalink)  
Old July 7th, 2007, 10:28 AM
mhkay's Avatar
mhkay mhkay is offline
Wrox Author
Points: 18,487, Level: 59
Points: 18,487, Level: 59 Points: 18,487, Level: 59 Points: 18,487, Level: 59
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Apr 2004
Location: Reading, Berks, United Kingdom.
Posts: 4,962
Thanks: 0
Thanked 292 Times in 287 Posts
Default

My mistake. Path expressions always sort into document order so $sorted-CMPs/@num undoes all your attempts at sorting. Change it to:

      <xsl:variable name="sorted-CMPs" as="element()*">
         <xsl:perform-sort select="CMP/@num">
            <xsl:sort select="."/>
         </xsl:perform-sort>
      </xsl:variable>

      <xsl:value-of select="($sorted-CMPs,
          'NA', 'NA', 'NA', 'NA', 'NA')[position()=1 to 5]"
        separator="|"/>
      <xsl:text>|</xsl:text>

The unwanted newlines are probably copied from the source document. Try <xsl:strip-space elements="*"/>.

Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference
Reply With Quote