[xsl] xsl:sort not working within xsl:choose

Subject: [xsl] xsl:sort not working within xsl:choose
From: "Hardy Merrill" <HMerrill@xxxxxxxxxxxxxxxx>
Date: Fri, 10 Dec 2004 08:54:32 -0500
MSXML4

I'm passing a script parameter into the xsl style sheet that tells me
what the sort field should be:

<xsl:param name="select_sort_field"/>

and then, within my for-each loop, I have the code to decide what to
sort by:

<xsl:for-each select="codes/value[code_type = $code_type]">
	
	<xsl:choose>
	<xsl:when test="$select_sort_field">
		<xsl:sort select="*[name()=$select_sort_field]" />
	</xsl:when>
	<xsl:otherwise>
		<xsl:sort select="code" />
	</xsl:otherwise>
	</xsl:choose>
	
<!--	<xsl:sort select="code" /> -->
<!--	<xsl:sort select="*[name()=$select_sort_field]" /> -->

-----------------------------------

but that's not working - I keep getting this error:

msxml4.dll error '80004005' 

Keyword xsl:sort may not be used here.

------------------------------------

What am I doing wrong?  The thing is, if I take out the entire choose,
and just use

   <xsl:sort select="code" />

or

   <xsl:sort select="*[name()=$select_sort_field]" />

it seems to work.  The thing is, I wanted to make it bullet proof in
case the script invoking this style sheet doesn't pass in the
$select_sort_field parameter - if not passed in, I want it to sort by
"code".

TIA.

Hardy Merrill.

Current Thread