Re: [xsl] Applying a Default Template

Subject: Re: [xsl] Applying a Default Template
From: David Carlisle <davidc@xxxxxxxxx>
Date: Tue, 30 Nov 2010 15:09:09 +0000
On 30/11/2010 14:59, Neil Beddoe wrote:
It seems inefficient to have to put a<td> in every one of my individual templates. Is there any way I can apply a template that puts in the<td> tags for every child of<row> and then applies the individual templates for the types of children of<row>?


<xsl:apply-templates mode="td"/>


...

<xsl:template match="*" mode="td">
  <td>
    <xsl:apply-templates select="."/>
  </td>
</xsl:template>


...


<xsl:template match="money">

       <span class="money" onclick="ShowMeMoney()">
           <xsl:value-of select="."/>
       </span>

</xsl:template>



Of course a mode with just a single template is the same thing as a for-each so you could if you prefer not have the td mode and instead go

<xsl:for-each select="*">
  <td>
  <xsl:apply-templates select="."/>
  </td>
</xsl:for-each>

matter of taste really, and whether you want to do it for several different parent templates, in which case all of them sharing the td mode saves a bit over repeating the for-each in each one,


David


________________________________________________________________________
The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. ________________________________________________________________________


Current Thread