Subject: Re: [xsl] Looking for a concise way of specifying an conditional attribute in output From: John McGowan <john@xxxxxxxxxxxxx> Date: Thu, 5 May 2011 15:06:45 -0500 |
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.j.welch@xxxxxxxxx> 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 > > -- /John
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Looking for a concise way, Andrew Welch | Thread | Re: [xsl] Looking for a concise way, Brandon Ibach |
Re: [xsl] Error message saying doc , Wendell Piez | Date | Re: [xsl] Looking for a concise way, Brandon Ibach |
Month |