On 06.11.2007 8:17 Uhr, Jens Reufsteck wrote:

I'm using a template, which once called from outside  starts calling itself
as long as a certain condition is true. But after a certain amount of calls
(1.100 times) it seems stopping to call itself. The processing stops in the
middle of the xml-document without throwing an exception and without
throwing the resulting xml-document.

I guess at some point the stack is just too big, but maybe the exception gets swallowed. But what actually happens? It can not just stop and do nothing. Is it like an exception would have been thrown but does not show up anywhere?

This is the template:

<xsl:template name="baum">
        <xsl:param name="position"/>
        ...     
        <xsl:if test="/website/ebene[position()=$position]/text() =
/website/ebene[position()=$position + 1]/text()">
                <xsl:call-template name="baum">
                        <xsl:with-param name="position" select="$position +
1"/>
                </xsl:call-template>
        </xsl:if>
</xsl:template>
        

The result looks like this:
<website>
        <baum ebene="1">
                de
                <ebene ebene="2">
                        education
                                <file>diplom.html</file>
                </ebene>
                ... [further 1099 entries]
                <ebene ebene="2"/>


Translation: baum = tree, ebene = level.

What you are doing looks very much like grouping. You should have a look into so-called Muenchian Grouping. Feel free to ask if you want to know more about it. I can help you with that if you give me some details from the input and the grouping rules.

Joerg

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to