Subject: Re: Skipping Custom Tags
From: Michael B Allen <mba2000@xxxxxxxxxx>
Date: Fri, 9 Dec 2005 14:42:43 -0500
|
On Fri, 9 Dec 2005 08:58:38 -0600
Jon Gorman <jonathan.gorman@xxxxxxxxx> wrote:
> On 12/8/05, Michael B Allen <mba2000@xxxxxxxxxx> wrote:
> > If I have a custom tag and I do:
> >
> > <xsl:apply-templates select="mytag"/>
> >
> > the tag <mytag> ends up in the output.
>
> Did you create an identity template that copied everything? Most
Yes. I have the standard "Identity Transform" template that copies
everything.
> likely this is the case. Make it explicit that you don't want to copy
> it:
>
> > Rather I want to skip that tag and apply-templates on everthing
> > enclosed *within* that tag. For that, adding /* appears to work:
> >
> > <xsl:apply-templates select="mytag/*"/>
> >
> > Is this the proper expression or should it be "@*|node()" or what?
>
> Depends on your case, personally I wouldn't even use that. If it's
> behavior you always want to occur, don't rely on the select, use
> something like the below.
>
> <xsl:template match="mytag">
> <xsl:apply-templates />
> </xsl:template>
>
> That way, if you call <xsl:apply-templates /> somewhere you don't have
> to worry about if there is a mytag element in there or not.
Ah, yes. This is what I want. I see now that the Identity transform is
copying it so I just need to provide a separate template that doesn't.
Thanks,
Mike
|