|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Defining variables as sequence of strings
On Wed, May 13, 2015 at 2:54 PM, Joseph L. Casale
jcasale@xxxxxxxxxxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
wrote:
> How does one construct a sequence variable,
>
> <xsl:variable name="MyVar" as="xs:string *">
> </xsl:variable>
>
> where the body either consists of an xsl:choose set or implements the same logic.
> I later use distinct-values($MyVar) in a for-each...
I typically recommend to avoid using explicit XSLT conditional
instructions. This said, here is an example as requested:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text"/>
<xsl:template match="/*">
<xsl:variable name="vDays" as="xs:string*" >
<xsl:choose>
<xsl:when test=". eq 'Biology'">
<xsl:sequence select="'Monday', 'Thursday'"/>
</xsl:when>
<xsl:when test=". eq 'Math'">
<xsl:sequence select="'Tuesday', 'Friday'"/>
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:sequence select="string-join($vDays, ' and ')"/>
</xsl:template>
</xsl:stylesheet>
This can also be written in a shorter way as:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output method="text"/>
<xsl:template match="/*">
<xsl:variable name="vDays" as="xs:string*" select=
"if(. eq 'Biology')
then ('Monday', 'Thursday')
else if (. eq 'Math')
then ('Tuesday', 'Friday')
else () "/>
<xsl:sequence select="string-join($vDays, ' and ')"/>
</xsl:template>
</xsl:stylesheet>
Cheers,
Dimitre
>
> Thanks!
> jlc
>
--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
To avoid situations in which you might make mistakes may be the
biggest mistake of all
------------------------------------
Quality means doing it right when no one is looking.
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
To achieve the impossible dream, try going to sleep.
-------------------------------------
Facts do not cease to exist because they are ignored.
-------------------------------------
Typing monkeys will write all Shakespeare's works in 200yrs.Will they
write all patents, too? :)
-------------------------------------
I finally figured out the only reason to be alive is to enjoy it.
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








