Re: Different attributes - same template

Subject: Re: Different attributes - same template
From: Warren Hedley <w.hedley@xxxxxxxxxxxxxx>
Date: Thu, 29 Jun 2000 11:35:53 -0400
Vytautas Nuobara wrote:
>
> The question is: how can i apply the same template for these frames and add
> specific attribute values? I tried to write template which adds similar
> attribes, something like this:

This sounds like a problem best solved by passing a parameter to
a "match"-type template. So you might have something like:

<xsl:template match="frame">
  <xsl:param name="scrolling" select="'auto'" />

  <frame name="{framename}" noresize="noresize"
     src="{frameurl}" marginheight="0" marginwidth="0"
     scrolling="{$scrolling}" />
</xsl:template>

(you can handle other attributes that change between frames
the same way), and:

<xsl:template match="frameset">
  <xsl:for-each select="frame">
    <xsl:choose>
      <xsl:when test="framename = 'header'">
        <xsl:apply-templates select=".">
          <xsl:with-param name="scrolling" select="'no'" />
        </xsl:apply-templates>
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="." />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>

Obviously, with such a simple template, it's probably easier to just
move it directly into the calling template.

--
Warren Hedley


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


Current Thread