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