View Single Post
  #2 (permalink)  
Old July 5th, 2007, 04:30 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

Try something like this:

<xsl:template match="FLD">
  <xsl:variable name="sorted-CMPs" as="element()*">
     <xsl:perform-sort select="CMP">
        <xsl:sort select="@num"/>
     </xsl:perform-sort>
  </xsl:variable>
  <xsl:value-of select="(@*, $sorted-CMPs/@num,
      'NA', 'NA', 'NA', 'NA', 'NA')[position()=1 to 8]"
    separator="|"/>
  <xsl:text>#xa;</xsl:text>
</xsl:template>

>if I have used the wrong terminology...

XSLT doesn't deal with tags. People often use "tag" to mean "element", which is incorrect. Most elements have two tags, a start tag and an end tag. Use "element" if you mean element node, "node" if you want to include other kinds of node as well.

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