Re: [xsl] Skipping Custom Tags

Subject: Re: [xsl] 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

Current Thread