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

Subject: Re: [xsl] FizzBuzz in XSLT 1.0. Help with a 2.0/FXSL solution?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Wed, 14 Mar 2007 18:09:22 GMT
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>

Current Thread