Try this
<xsl:template match="/">
<xsl:apply-templates />
</xsl:template>
<xsl:template match="para">
<p>
<xsl:apply-templates />
</p>
</xsl:template>
<xsl:template match="chem">
<span class="chem>
<xsl:apply-templates />
</chem>
</xsl:template>
<xsl:template match="sub">
<sub>
<xsl:apply-templates />
</sub>
</xsl:template>
<xsl:template match="text()">
<xsl:value-of select="." />
</xsl:template>
----- Original Message -----
From: "Drew McLellan" <dru(_at_)dreamweaverfever(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Monday, August 11, 2003 1:45 PM
Subject: [xsl] Display value AND apply templates
I've been looking at this for too long and can no longer think clearly.
Take this example:
<myxml>
<para>The notation for water is
<chem>H
<sub>2</sub>
0
</chem>
</para>
</myxml>
I'm trying to transform to XHTML. The desired output for the above would
be:
<p>The notation for water is <span class="chem">H<sub>2</sub>0</span></p>
The problem I have is that if I use value-of "." I can get the value of
node, but no further templates are applied. If I use apply-templates "*" I
get the sub-templates but no value.
For example:
<xsl:template match="chem">
<span class="chem"><xsl:apply-template select="*" /></span>
</xsl:template>
<xsl:template match="sub">
<sub><xsl:value-of select="." /></sub>
</xsl:template>
This gets the <sub> but loses the value of the <chem>.
As I say, I've lost all clarity of mind on this, so I'm expecting it to be
obvious! Any and all suggestions most welcome.
Thanks for your time.
Drew McLellan
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list