RE: [xsl] How do you apply templates ONLY to the direct children of an element/node?

Subject: RE: [xsl] How do you apply templates ONLY to the direct children of an element/node?
From: Borislav Stoyanov <BStoyanov@xxxxxxxxx>
Date: Tue, 26 Aug 2003 14:38:20 +0100
> > How do you apply templates ONLY to the direct children of an 
> > element/node,
> > supposed you dont know their name?
> 
>   <xsl:apply-templates select="*"/>
> 
> which is an abbreviation of
> 
>   <xsl:apply-templates select="child::*"/>
> 
> > What if there is no 
> > matching template,
> > why are grandchildren also matched?
> 
> Because the build-in default template is used, which in this case is
> 
>   <xsl:template match="* | /">
>     <xsl:apply-templates select="node()"/>
>   </xsl:template>
> 

Actually I know this but it is NOT ONLY for the DIRECT children but also for
their grandchildren and so on IF there is no specified matching template for
<unknown-element>. My idea is that if the xsl-transformer finds an element
for which it is not defined a template it just skips it and don't go into
this element's children? 

> Let 
> > <element-1>
> >     <unknown-element>
> >        ....
> >     </unknown-element>
> > <element-1>
> > be the xml file to be transformed.
> > 
> > Now you got the following transforming rule:
> > <xsl:template match="element-1">
> >     <xsl:apply-templates select="*"/>
> > </xsl:template>
> > 
> > What I expect is that if an xsl <unknown-element> template rule is not
> > available nothing should happen. However I get apply-templates on the 
> > elements contained in <unknown-element>...</unknown-element>. Why does
it 
> > happen and how can I achieve to apply the templates ONLY to the direct 
> > children and avoid the implied apply-template rules to the grandchildren
> > and so on?
> 
> Override the default rule with e.g.
> 
>   <xsl:template match="*"/>

Thats not that simple if you have 200 other templates/cases somewhere else.

Best regards,

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread