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: Jarno.Elovirta@xxxxxxxxx
Date: Tue, 26 Aug 2003 14:46:05 +0300
Hi,

> 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>

> 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.

Override the default rule with e.g.

  <xsl:template match="*"/>

Cheers,

Jarno - Delerium: Returning

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


Current Thread