Re: [xsl] more on Using apply-templates instead of for-each?

Subject: Re: [xsl] more on Using apply-templates instead of for-each?
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 15 Apr 2003 16:05:23 -0400
Hi again Kathy,

At 02:09 PM 4/15/2003, you wrote:
***I'm just trying to put each numbered <listitem> (child of
safety/numbered_list) into a table row***

<xsl:template match="safety">
        <table border="1" width="100%" cellpadding="4">
                <tr bgcolor="red" valign="bottom">

<th align="left">

                                <h3>SAFETY</h3>
                        </th>
                </tr>
                        <xsl:for-each select="numbered_list/listitem">

                <tr>
                        <td>
                                <xsl:number level="multiple" format="1. "
count="listitem" />
<xsl:value-of select="." />
                        </td>
                </tr>
                        </xsl:for-each>
                </table>
                <br />
        </xsl:template>

Fully templated version:


<xsl:template match="safety">
<table border="1" width="100%" cellpadding="4">
<tr bgcolor="red" valign="bottom">
<th align="left">
<h3>SAFETY</h3>
</th>
</tr>
<xsl:apply-templates select="numbered_list/listitem"/>
<!-- depending on your source data you may not need the 'select' attribute -->
</table>
<br />
</xsl:template>


<xsl:template match="listitem">
<!-- again depending, you may want to qualify this as
match="numbered_list/listitem"
and/or use a mode -->
<tr>
<td>
<xsl:number level="multiple" format="1. " count="listitem" />
<xsl:apply-templates/>
<!-- instead of saying value-of we'll let the built-in templates do it -->
</td>
</tr>
</xsl:template>


As you can see, in this simple case there's no appreciable gain in clarity or power; but as your source and processing get more complex, templates give us the flexibility we will need. (Think about what happens as your source data gets loose and variable.)

Cheers,
Wendell


====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================


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



Current Thread