xsl-list
[Top] [All Lists]

Re: [xsl] Using variables in xpath attribute matches

2008-08-22 04:21:27
2008/8/21 Martin Honnen <Martin(_dot_)Honnen(_at_)gmx(_dot_)de>:
Matt Lee wrote:

<xsl:template name="get_attribute">
<xsl:param name="attribute"/>
<xsl:value-of select="@<<FIXME>>"/>
</xsl:template>


I would like to use the value of the attribute parameter passed into
this template as the attribute match expression in the inner most
select.

All you can do is
 <xsl:value-of select="@*[local-name() = $attribute]"/>



But why would you want to?  You really don't need to separate out
getting an attributes value...

Why do:

<xsl:call-template name="getAttribute">
  <xsl:with-param name="'someAtt'"/>
</xsl:call-template>

instead of:

<xsl:value-of select="@someAtt"/>

?

Remember one of the golden rules for people learning XSLT - don't use
named templates!

One of the worst sins of XSLT is not understanding the recursive
descent processing model (apply-templates and template matching) and
instead just using named templates passing around the context as
param:

<xsl:call-template name="handleSomeElem">
  <xsl:with-param select="$current/elem"/>
...

and

<xsl:template name="handleSomeElem">
  <xsl:param name="elem">
     ...

It becomes a maintenance nightmare!


-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--