RE: [xsl] Sorting issue, sorting by description given code

Subject: RE: [xsl] Sorting issue, sorting by description given code
From: Jarno.Elovirta@xxxxxxxxx
Date: Wed, 29 Oct 2003 08:51:18 +0200

> Aim: To output a list of those Group names for which a Point 
> belongs to,
> sorted alphabetically.
> From above we have three points, so the desired result would be thus
> Group List...

You're almost there, see the inline comments.

  <xsl:key name="groups" match="Point" use="@group" />
  <!-- Add new key for sorting -->
  <xsl:key name="x" match="Group" use="@num" />
  <xsl:template match="SEEDB">
    <table class = "style1" border="1" cellspacing="0" cellpadding="2" width="650">
      <tr >
        <th align="center">Point Groups</th>
      <xsl:for-each select="Points/Point[generate-id(.) = generate-id(key('groups',@group)[1])]">
        <!-- Sort according to the name -->
        <xsl:sort select="key('x', @group)/@name" data-type="text"/>
        <xsl:apply-templates select="."/>
  <xsl:template match="Point">
      <td align="center">
        <!-- You had a variable $group here, you want to use current() function -->
        <xsl:value-of select="/SEEDB/Groups/Group[@num = current()/@group]/@name"/>

> sort the nodeset, and then output, but I wanted to avoid this if
> possible, since I am led to believe that some parsers don't have an
> equivalent "msxsl:node-set" function.

Well, almost, if not all XSLT processors have some sort of e:node-set extension. See <> for the common extension for RTF -> node-set conversion.


Jarno - Assemblage 23: Pages

 XSL-List info and archive:

Current Thread