RE: [xsl] [XSL] Using Sort and Position Function

Subject: RE: [xsl] [XSL] Using Sort and Position Function
From: Alice Wei <ajwei@xxxxxxxxxxx>
Date: Tue, 11 Dec 2007 18:39:36 -0500
Quoting Michael Kay <mike@xxxxxxxxxxxx>:

Dear Michael and Ken:

Thanks for the tip. I have modified my XSL to

<xsl:template match="application">

  <span>
	<xsl:attribute name="title">
       <xsl:value-of select="type"/>
  </xsl:attribute>
  <xsl:value-of select="ability"/>
  </span>
   <xsl:if test="position( ) !=last( )">, </xsl:if>
  <xsl:if test="position( )=last()-1">and </xsl:if>
</xsl:template>

the output is now accurate with "and" instead a "," at the last item.

Alice
The XSL:

    <xsl:template match="application">
        <xsl:for-each select=".">
            <xsl:sort select="@rank" order="ascending"/>
            <span>
                <xsl:attribute name="title">
                    <xsl:value-of select="type"/>
                </xsl:attribute>
                <xsl:value-of select="ability"/>
            </span>
            <xsl:choose>
                <xsl:when test="position( ) !=last( )">, </xsl:when>
                <xsl:otherwise><!--Don't display
anything--></xsl:otherwise>
            </xsl:choose>
        </xsl:for-each>
    </xsl:template>

This stylesheet works.

You're sorting a list that contains a single item. This item will always be the last in the list.


Michael Kay http://www.saxonica.com/





Alice Wei MIS 2008 School of Library and Information Science Indiana University Bloomington

Current Thread