Re: [xsl] Skipping Custom Tags

Subject: Re: [xsl] Skipping Custom Tags
From: Jon Gorman <jonathan.gorman@xxxxxxxxx>
Date: Fri, 9 Dec 2005 08:58:38 -0600
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
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.

Jon Gorman


ps.  Folks on this list tend to prefer thinking about elements, not
tags, since while methods like SAX may manipulate the actual tags,
XSLT just sees the elements.

Current Thread