Re: [xsl] How to test if a named attribute exists and put the name of that attribute in an generic way

Subject: Re: [xsl] How to test if a named attribute exists and put the name of that attribute in an generic way
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 7 Apr 2003 11:36:04 +0100
-----------------------------------------------------------------------^

> not possibly because of xsl-language either something like
> <xsl:attribute name="name($attributeValue)">  

the name attribute of xsl:attribute is an AVT so you can go
<xsl:attribute name="{$attributeValue}">
But it seems unlikely that you need to do this, why convert the input
attribute node to two strings with the name and value then have to use
xsl:attribute to convert these strings back into an attribute node in
the result, why not you copy the attribute node from input to result?

   <xsl:if test="string($attributeValue) != '' "><xsl:attribute
   name="$attributeName"><xsl:value-of
   select="$attributeValue"/></xsl:attribute></xsl:if>

This is I think trying to copy an attribute from the input to the result,
so long as it is non-empty, which is just

<xsl:copy-of select="$attribute[. != '']"/>

where you have an $attribute parameter which has the attribute node
rather than its value, ie is set with
<xsl:with-param name="attribute" select="@foo"/>
rather than
<xsl:with-param name="attributeName" select="'foo'"/>

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star Internet. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

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


Current Thread