Subject: Looking for a concise way of specifying an conditional attribute in output
From: John McGowan <john@xxxxxxxxxxxxx>
Date: Wed, 4 May 2011 13:03:22 -0500
|
I'm looking for a more concise way of doing this particular pattern
that shows up a lot in (x)html forms.
..
<option value="{@value}>
<xsl:if test="@value eq something"><xsl:attribute name="selected"
select="'selected'" /></xsl:if>
other stuff
</option>
..
I tried this out, thinking that it might work...
<option value="{@value}>
<xsl:value-of select="isSelected(@value,something)">
other stuff
</option>
with a reusable function like this
<xsl:function name="isSelected">
<xsl:param name="v1"/>
<xsl:param name="v2"/>
<xsl:if test="$v1 eq $v2"><xsl:attribute name="selected"
select="'selected'" /></xsl:if>
</xsl:function>
But instead I ended up with the word selected showing up inside of the
option element, not as an attribute.
I've been doing it the first way for years, and was just hoping I
could make it a little cleaner, but you must not be able to return
just an attribute from a function and have it make it's way into the
element containing the function call.
--
/John
|