xsl-list
[Top] [All Lists]

Re: Display value AND apply templates

2003-08-11 04:55:24
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



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