[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Using variables in xpath attribute matches

Subject: Re: Using variables in xpath attribute matches
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Fri, 22 Aug 2008 10:20:55 +0100
Re:  Using variables in xpath attribute matches
2008/8/21 Martin Honnen <Martin.Honnen@xxxxxx>:
> 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'"/>

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

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


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

It becomes a maintenance nightmare!

Andrew Welch
Kernow: http://kernowforsaxon.sf.net/

Current Thread


Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
First Name
Last Name
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.