RE: [xsl] Matching Templates

Subject: RE: [xsl] Matching Templates
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Sun, 23 Feb 2003 21:39:28 -0000
> I have 2 questions:
> 
> 1)  How do I create 2 templates which have the same match, 
> one template would yield something different, like lets say 
> the form select dropdown element, and the other a bulleted 
> list of the results of the template match?

Distinguish them using the mode attribute, and then on
xsl:apply-templates specify which mode you want.
> 
> 2)  My match is (semi) complicated, is there a way to clean 
> this up, simplify it?  It looks something like this <snippet follows>:
> 
> --------------------------------------------------------------
> --------------
> --
>  <table summary="">
>       <tr>
>   <xsl:apply-templates 
> select="xml/s:Schema/s:ElementType/s:AttributeType[check='true']"/>
>       </tr>
>       </table>
> 
> --------------------------------------------------------------
> --------------
> --
> 
> and then my template looks like this:
> 
> --------------------------------------------------------------
> --------------
> --
>     <xsl:template 
> match="xml/s:Schema/s:ElementType/s:AttributeType[check='true']">
>         <td>
>         <xsl:value-of select="@name"/>
>         </td>
>     </xsl:template>
> 

It's hard to say without seeing what other template rules there are, and
how you process the nodes other than this one. One way to do it would be
to use a named template instead:

<xsl:for-each
select="xml/s:Schema/s:ElementType/s:AttributeType[check='true']">
  <xsl:call-template name="check-attribute"/>
</xsl:for-each>

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 


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


Current Thread