[Home] [By Thread] [By Date] [Recent Entries]
Hi,
I am using Xalan and Cocoon to doing try and implement a "divide and conquer" algorithm for processing very large XML files. I have a row count of 8400, so I should only have a depth of log2(8400) (about 12), I keep getting stack overflow error, and setting -RL with Xalan fails too, I thought DVC algorithms were supposed to stop this! Anyway, <sql:rowset>
<sql:row>
<col1>..</col1>
<col2>..</col2>
</sql:row>
:
:
</sql:rowset>and the template looks like where rows are the collection of sql:row above Any help would be great, thanks, <xsl:template name="data"> <xsl:param name="rows"/> <xsl:param name="rowcount" select="count($rows)"/> <xsl:choose> <xsl:when test="$rowcount = 1"> <xsl:for-each select="sql:row"> <xsl:for-each select="*"> <xsl:choose> <xsl:when test="(local-name(.) = 'date') or (local-name(.) = 'lat') or (local-name(.) = 'lon')"></xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose> </xsl:for-each> </xsl:for-each> </xsl:when> <xsl:otherwise> <xsl:variable name="cntHalf" select="floor($rowcount div 2)"/> <xsl:variable name="vValue1"> <xsl:call-template name="data"> <xsl:with-param name="rows" select="$rows[position() <= $cntHalf]"/> </xsl:call-template> </xsl:variable> <xsl:variable name="vValue2"> <xsl:call-template name="data"> <xsl:with-param name="rows" select="$rows[position() > $cntHalf]"/> </xsl:call-template> </xsl:variable> </xsl:otherwise> </xsl:choose> </xsl:template>
|

Cart



