Subject: Re: [xsl] function returning string with string-join() From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Fri, 6 Aug 2010 06:43:36 -0700 |
concat('NO', ('x',$input)[($input = (1,2)) +1], '.html') -- 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 ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play On Fri, Aug 6, 2010 at 5:37 AM, ac <ac@xxxxxxxxxxxxx> wrote: > > Hi, > > I would have done this one simply as > ... > <xsl:sequence select="string-join (('NO', if (string($input)) then string($input) else 'x', ',html'), '')"/> > ... > with the feeling that string-join() is typically faster than concat() and string() faster than set operation with predicates, and that the overall instruction is easier to read and understand > > Am I right? > > Cheers, > ac > > > > >> Am 06.08.2010 um 11:15 schrieb Andrew Welch: >> >> >>> >>> When returning atomics (such as xs:string) you should use xs:sequence >>> and not xsl:value-of, as value-of will create a text node that then >>> gets "atomized" to an atomic. >>> >> >> Thanks for that reminder... xsl:for-each-group and regular expressions are well settled in my XSLT2 mind-set, but xsl:sequence is more or less ignored. >> >> >>> >>> If you didnt have the xsl:message call you could do: >>> >>> B B <xsl:function name="my:filename" as="xs:string"> >>> B B B B <xsl:param name="input" as="xs:integer" /> >>> B B B B <xsl:sequence select="concat(if ($input = (1,2)) then ('NO1', >>> 'NO2')[$input] else 'NOx', '.html')"/> >>> B B </xsl:function> >>> >> >> Yes, if... >> >> I still try to find the best balance between writing some complex, possibly hard to debug multi-line XPath expressions or a tree of XSLT elements. Haven't found a general rule for that, and maybe there isn't. >> >> Thanks a lot, >> >> - Michael
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] function returning string, ac | Thread | Re: [xsl] function returning string, Hermann Stamm-Wilbra |
Re: [xsl] function returning string, ac | Date | Re: [xsl] function returning string, Hermann Stamm-Wilbra |
Month |