Hello all,
I have an embarrassing simple apply-templates/template problem. Here's my
source document:
<kcmtests>
<kcm kcfg="true" [...]>
[...]
</kcm>
<kcm kcfg="false" [...]>
[...]
</kcm>
<kcm kcfg="false" [...]>
[...]
</kcm>
</kcmtests>
There's 21 kcm elements, all of them have "kcfg='true'".
<xsl:template select="kcm">
<xsl:message>template hits</xsl:message>
<!-- This message is never seen -->
</xsl:template>
<xsl:template match="/">
<xsl:apply-templates select="//kcm[(_at_)kcfg='true']"/>
<xsl:message>
<xsl:value-of select="count(//kcm[(_at_)kcfg='true'])"/>
<!-- This reports 0, which is correct -->
</xsl:message>
<xsl:apply-templates select="//kcm[(_at_)kcfg='false']"/>
<xsl:message>
<xsl:value-of select="count(//kcm[(_at_)kcfg='false'])"/>
<!-- This reports 21, which is correct -->
</xsl:message>
</xsl:template>
What I want to achieve is to in one place select entries(the root template),
and then with the first template format them for representation -- but it
doesn't hit. Instead, the selected items(the 21 kcm) is printed right out in
the output(their content, no elements).
I have two questions:
1. Why doesn't the template hit?
2. Why are the content simply sent to the output? Is it because I selected
them, but no template matched?
The above XSL is that simple, I've commented out everything else for testing
purposes.
Thanks in advance,
Frans