[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

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

Subject: RE: more on Using apply-templates instead of for-each?
From: "Kathy Burke" <Kathy_Burke@xxxxxxxxx>
Date: Tue, 15 Apr 2003 16:55:17 -0400
xsl listitem
Like magic! When I switched from <xsl:apply-template
select="numbered_list/listitems"> to
<xsl:apply-templates/> all my other formatting appeared! I think light is
finally dawning...thank you for the tutoring.

Kathy

-----Original Message-----
From: Wendell Piez [mailto:wapiez@xxxxxxxxxxxxxxxx]
Sent: Tuesday, April 15, 2003 4:05 PM
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re:  more on Using apply-templates instead of for-each?


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



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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.