xsl-list
[Top] [All Lists]

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

2003-04-15 13:05:23
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(_at_)mulberrytech(_dot_)com
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