beware the T-word. XSLT has no access to the tags in the source document
and can not generate tags in the result.
You want to generate a Worksheet node every 65,535 records so that's
something like
<xsl:for-each select="record[position() mod 65535 = 1]">
<Worksheet ss:name="{$WORKSHEET}">
The problem here is that there has to be a closing worksheet tag,
As I said, XSLT doesn't work with tags.
so i have to process all the rows recursively,
You could do, or you could most likely use the simpler method of
processing n records at a time (for n = 65535 or 500 or whatever you
need) that I show above.
<xsl:value-of select="substring($FILE, 1,
string-length($FILE) -4)">
</xsl:value-of>
value of has to be empty.
<xsl:template match="record" mode="item">
<xsl:param name="remaining" select="$GROUPSIZE - 1"/>
<Row>
<xsl:for-each select="*">
<xsl:call-template name="cell"/>
</xsl:for-each>
</Row>
<xsl:if test="$remaining">
<xsl:apply-templates
select="following-sibling::record[1]" mode="item" >
<xsl:with-param name="remaining" select="$remaining -1"
/>
</xsl:apply-templates>
</xsl:if>
</xsl:template>
This appears to be processing $GROUPSIZE siblings at a time, if so there
is no need to use recursion here (processors will not be optimised to
recurse that deeply, most likely) you can just do
<xsl:apply-templates
select="following-sibling::record[position()<$GROUPSIZE]
no need to explictly recurse.
<xsl:if test='number(.)'>
<xsl:if test="not(number(.))">
testing for zzz and not(zzz) is always equivalent to an axsl:choose with
a single test and an otherwise. In this case I don't think you want to
test number(.) as that will first coerce the current node to being a
number, and then be true if that number is non-zero. Perhaps that is
what you want but I suspect that you want to test
test="number(.)=number(.)"
which is true if the content coerces to a number that is not NotANumber.
David
________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________
--~------------------------------------------------------------------
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>
--~--