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