xsl-list
[Top] [All Lists]

[xsl] Using variables in xpath attribute matches

2008-08-21 12:07:29
Hi,

I have the following template:

<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. But I am quite confused as to what the syntax is for doing
this. For instance, given this XML,

<foo>
<node attrib1="1" attrib2="2"/>
</foo>

I would like to invoke the get_attribute template as follows:

<xsl:call-template name="get_attribute"> <xsl:with-param
name="attribute>attrib1</xsl:with-param>
<xsl:call-template name="get_attribute"> <xsl:with-param
name="attribute>attrib2</xsl:with-param>

I have tried the following syntaxes, with no success. The parser gives
syntax errors.

<xsl:value-of select="@$attribute"/>
<xsl:value-of select="@{$attribute}"/>
<xsl:value-of select="@'$attribute'"/>
<xsl:value-of select="@string($attribute)"/>

Everything works fine, if I directly key in the attribute name:

<xsl:value-of select="@attrib1"/> and so on.

Am I trying to do something really stupid? Please advise. It sounds
like it would be useful to construct the xpath expression via
variables.

matt

--~------------------------------------------------------------------
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>
--~--