L Duperval <duperval <at> videotron.com> writes: > The value of attr2 is pushed up to the <file> element and the value of id is > used as a parameter to the <redirect:write> rule. > > L > >
OK, I managed to do what I wanted, although I am cheating a bit... <xsl:template match="DATAFILE"> <DATAFILE LANG="en"> <xsl:for-each select="SITE"> <xsl:variable name="filename" select="concat('output/',@LOCATIONID,'.xml')" /> <redirect:write select="$filename" indent="yes"> <xsl:copy> <xsl:value-of select="*" /> <xsl:apply-templates select="@*|node()" /> </xsl:copy> </redirect:write> </xsl:for-each> </DATAFILE> </xsl:template> The attr2 parameter I mentioned in my example is the LANG parameter in the template above. Since we have a limited number of languages, it's feasible for me to run the transform twice, once for each language. On top of that, I remove some attributes that are specific to a language and I didn't want to mess around with writing two output files simultaneously. Thanks for your comments and if there are obvious improvements I could make, I'm all ears... errr... eyes. :) L