xsl-list
[Top] [All Lists]

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

2003-08-26 07:09:01
XSLT supplies a built-in template rule that's invoked when no explicit
template rule matches a node during apply-templates. The built-in rule
does as you've discovered: it processes the grandchildren. This is often
useful, but if you don't want this behavior, just change it:

<xsl:template match="*"/>

creates a fallback template rule that does nothing.

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Borislav Stoyanov
Sent: 26 August 2003 13:32
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: [xsl] How do you apply templates ONLY to the direct 
children of an element/node?


Hallo all,

How do you apply templates ONLY to the direct children of an 
element/node, supposed you dont know their name? What if 
there is no matching template, why are grandchildren also matched?

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? Or is this a simple xsl question :)?

Best regards,

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



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



<Prev in Thread] Current Thread [Next in Thread>