and i have a recursive call to a template whose
function is to concatenate all the values with the tag
You don't need recursion to do that
<xsl:copy-of select="Type/text()"/>
is all you need.
However
<xsl:value-of select ="ResourceTypeSet/Type[$In]"/>
I assume thst isn't your actual code as $In is not defined, assuming
that you have
<xsl:value-of select ="ResourceTypeSet/Type[$Index]"/>
then your problem is that the short hand Type[3] for Type[position()=3]
only tales place if the thing in teh [] is a number.
$Index starts off as a number
<xsl:with-param name="Index" select="1"/>
but then you redeclare it to be a result tree fragment
<xsl:with-param name="Index"><xsl:value-of
select="$Index+1"/></xsl:with-param>
If you use a result tree fragment as a boolean then it is always true as
it corresponds to a non empty node set so
ResourceTypeSet/Type[$Index]
is
ResourceTypeSet/Type[true()]
which is
ResourceTypeSet/Type
ie it selects all the Tyope nodes, then
<xsl:value-of
always returns the value of (only) the first node selected, so you will
always get the first one back.
David
--
http://www.dcarlisle.demon.co.uk/matthew
________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list