xsl-list
[Top] [All Lists]

RE: Best way to use global params in templates to cover potential com binations?

2003-09-30 16:28:50
Hi

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Kathy Burke
Sent: Monday, September 29, 2003 6:34 PM
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Best way to use global params in templates to 
cover potential com binations?


(...)
To date, I've only used a simple template, not requiring the 
use of these parameters as filters:

      <xsl:template match="link">
            <a target='_blank" 
href="{(_at_)url}"><xsl:apply-templates/></a>
      </xsl:template>

In English, I need to cover in xsl all potential combinations 
of Customer and Assembly (exists or not exists), for example:

1. If the Customer attribute does NOT exist in <link>, show 
the link {(_at_)url} regardless of the param value for customer 
XYZ. 2. If the Customer attribute DOES exist, show the link 
ONLY if the attribute matches the param value XYZ. 3. Also, 
various combinations of Customer AND Assembly attributes exist, etc.


You can use <xsl:choose> as J.Pietschmann said or you can use <xsl:if>
all depends on what you want to do with the link

The xsl:if template:
<xsl:template match="link">
 <xsl:if test="(not(@Customer) or (@Customer=$Customer)) and
(not(@Assembly) or (@Assembly=$Assembly))">
  <a href="{(_at_)urlf}"><xsl:apply-templates/></a>
 </xsl:if>
</xsl:template>

This will create a <a> node (if @Customer does not exists or if it's
value is equal to $Customer) and (if @Assembly does not exists or if
it's value is equal to $Assembly)

Regards,
Americo Albuquerque


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



<Prev in Thread] Current Thread [Next in Thread>