xsl-list
[Top] [All Lists]

Re: [xsl] FizzBuzz in XSLT 1.0. Help with a 2.0/FXSL solution?

2007-03-14 11:09:44

Of course the hardest part there is

     <xsl:for-each select="xs:integer(substring-before(range,'-')) to
     xs:integer(substring-after(range,'-'))">


which is only needed due to the unstructured input.

If the input were

<fizzbuzz>
    <start>1</start>
    <stop>100</stop>

rather than

<fizzbuzz>
    <range>1-100</range>

You could simplify that greatly.

<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="fizzbuzz">
       <xsl:value-of separator="" select="
  for $i in start to stop
    return ('&#10;',$i, test/mod[($i mod @value) = @test])
    [not(position() lt last() and . instance of xs:integer)]"/>
   </xsl:template>
</xsl:stylesheet>

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--