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

<xsl:stylesheet xmlns:xsl="";
<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>

$ 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.


 XSL-List info and archive:

Current Thread