[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Defining variables as sequence of strings
Subject: Re: [xsl] Defining variables as sequence of strings From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 13 May 2015 22:19:31 -0000 |
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.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Defining variables as sequenc, Joseph L. Casale jca | Thread | Re: [xsl] Defining variables as seq, Joseph L. Casale jca |
[xsl] Defining variables as sequenc, Joseph L. Casale jca | Date | Re: [xsl] Defining variables as seq, Joseph L. Casale jca |
Month |
Keywords