What I am trying to do is generate a bit of code which could then be used to apply attributes to various elements if there has been a value specified. I have tried doing it with an attribute-set, but this is not working because it doesn’t like conditionals inside attribute sets.
Here is an example of what I’ve tried to use for attribute-set
<xsl:attribute-set name="common"> <xsl:if test="@name != ''"> <xsl:attribute name="name"><xsl:value-of select="@name" /></xsl:attribute> </xsl:if> <xsl:if test="@type != ''"> <xsl:attribute name="type"><xsl:value-of select="@type" /></xsl:attribute> </xsl:if> </xsl:attribute-set> </pre><BR><BR>I have used various ways to apply these, such as:<BR><BR><pre class="ip-ubbcode-code-pre"> <input> <xsl:use-attribute-sets="common" /> </input> and <input xsl:use-attribute-sets="common"> </input>
When I replace the conditionals in the attribute-set with static values (ie <xsl:attribute name=“name”><xsl:value-of select="@name" /></xsl:attribute>) it works fine, but I do not want to do this because I dont want all elements to have, say, a name tag simply because I applied the common attribute-set, but rather only if one has been specified.
Anyone know a way to accomplish what I am trying to do? This would save me quite a bit of code if I could define all the common attributes once, and apply/insert the code where I want to run checks against them, applying where necessary.