Thank you Andrew, Michael and Ken!
I use value-of so much I forgot about it's impact on "non-strings".
This information also helped me with a very similar issue I just ran
into today where I was writing a function that was returning a boolean
true or false, but it was always true... because value-of was turning
it into a string.
/John
On Thu, May 5, 2011 at 3:25 AM, Andrew Welch
<andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com> wrote:
<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>
As has been said you need xsl:sequence or xsl:copy-of to get the whole
node not just the value of the node, but you could also make that
function a little more generic to create any attribute:
<xsl:function name="f:createAtt">
<xsl:param name="name"/>
<xsl:param name="value"/>
<xsl:attribute name="{$name}" select="$value"/>
</xsl:function>
and then call it passing the the name value pair for the attribute,
and put the condition in a predicate:
<foo>
<xsl:sequence select="f:createAtt('foo', 'bar')[current()/@value =
$something]"/>
cheers
andrew
--
Andrew Welch
http://andrewjwelch.com
--~------------------------------------------------------------------
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>
--~--
--
/John
--~------------------------------------------------------------------
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>
--~--