This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: xsl:for-each and xsl:apply-templates
Hi,
If you want to handle the child differently depending on if it is a
child of parent1 or parent2, then read this. Otherwise, nevermind :-)
Untested stab at your what you want to do:
<xsl:template match="child">
<xsl:choose>
<xsl:when test="name(parent::node()) = 'parent1'">
<do-your-child-transform-here/>
</xsl:when>
<xsl:when test="name(parent::node()) = 'parent1'">
<do-your-other-child-stuff-here/>
</xsl:when>
<xsl:otherwise>
<do-your-default-or-error-here/>
</xsl:otherwise>
</xsl:choose>
<do-common-to-both-transforms-here-or-above-the-xsl-choose-block/>
</xsl:choose>
Michael Case
David Carlisle wrote:
>
> > It seems that calls to xsl:apply-templates from within an xsl:for-each
> > loop are ignored.
>
> No, they are processed as usual.
>
> > If the question sounds vague,
> (more than vague)
> > Is this the only approach?
> You haven't said what approach you are using, but there must be other
> ones.
>
> Clearly you have some XSL that isn't working as you expect, but
> you only showed an input document and not the XSL so it is all but
> impossible to debug the XSL for you.
>
> > I use "xsl:for-each" to get the wrapping that I need,
>
> why?
>
> It looks like you just want.
> <xsl:template match="parent1">
> <wrap1>
> <xsl:apply-templates/>
> </wrap1>
> </xsl:template>
>
> <xsl:template match="parent2">
> <wrap2>
> <xsl:apply-templates/>
> </wrap2>
> </xsl:template>
>
> <xsl:template match="child">
> <childstuff>
> <xsl:apply-templates/>
> </childstuff>
> </xsl:template>
>
> David
>
> _____________________________________________________________________
> This message has been checked for all known viruses by Star Internet
> delivered through the MessageLabs Virus Scanning Service. For further
> information visit http://www.star.net.uk/stats.asp or alternatively call
> Star Internet for details on the Virus Scanning Service.
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
--
Michael E. Case
UC Davis
case@ucdhep.ucdavis.edu
(530) 754-7226
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list