Re: [xsl] Selecting from a sequence

Subject: Re: [xsl] Selecting from a sequence
From: "Mailing Lists Mail daktapaal@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Thu, 5 Feb 2015 19:31:33 -0000
<xsl:variable name="foo" select = "xxx"/>

  <xsl:variable name="bar" select= "yyy"/>

<xsl:variable name="foo1"/>

  <xsl:variable name="bar1" select= "'world'"/>


  <xsl:value-of select="($foo,$bar)[1]"/> <!--first-->

    <xsl:value-of select="(string($foo1),$bar1)[1]"/><!--Second-->

First worked but second did not work
I was expecting "World" to be output to the result ..


On Thu, Feb 5, 2015 at 1:36 PM, Michael Kay mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> If $a and $b have cardinality zero-or-one then ($a, $b)[1] does what you want (and is a common programming idiom).
>
> But be careful, it doesn't work if either $a or $b can contain more than one item.
>
> Also, it tests whether $a exists, which isn't the same as your example of testing the effective boolean value of string(@a).
>
> Michael Kay
> Saxonica
> mike@xxxxxxxxxxxx
> +44 (0) 118 946 5893
>
>
>
>
> On 5 Feb 2015, at 18:32, Mailing Lists Mail daktapaal@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> Hey All,
>> I have a logic that says :
>>
>> if $a found , then use it, else use $b.
>> I can do this like
>>
>> <xsl:value-of select = "if(string($a)) then $a else $b"/>
>>
>> Can I do something like
>> <xsl:value-of select = "($a,$b)[1]"/>
>>
>> Not sure , when this will work and when it wont. Or will it work at all..

Current Thread