Re: [xsl] Problem with xslt recursion

Subject: Re: [xsl] Problem with xslt recursion
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 10 Feb 2004 22:32:50 GMT
 to address your doubt about why it is not enuf for me
 to just use <xsl:copy-of select="Type/text()"/>
 
 instead of recursion i have to further explain what i
 am trying to do..

See, it's always much easier to answer questions given sample input and
desired output. You are correct that my one line xsl:copy can not add
the  "_" between the items (In Xpath 2 this will be possible and the
whole stylesheet below could be replaced by a single xsl:value-of)

However you don't need recursion, just a small for-each loop over the
elements



<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
version="1.0">
<xsl:param name="x"/>
<xsl:template match="Root">
 <xsl:for-each select="Elements/Element[@name=$x]/R/Type">
 <xsl:value-of select="/Root/*[name()=current()]"/>
 <xsl:if test="position()!=last()">_</xsl:if>
 </xsl:for-each>
</xsl:template>
</xsl:stylesheet>


$ saxon concat.xml concat.xsl x=El1
<?xml version="1.0" encoding="utf-8"?>R1_R2
davidc@DCARLISLE /c/tmp
$ saxon concat.xml concat.xsl x=El2
<?xml version="1.0" encoding="utf-8"?>R1
davidc@DCARLISLE /c/tmp
$ saxon concat.xml concat.xsl x=El3
<?xml version="1.0" encoding="utf-8"?>R1_R2_R3


which matches your desired output I believe.

-- 
http://www.dcarlisle.demon.co.uk/matthew

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread