Flocke: call-template problem?

Beitrag lesen

hallo,

ich habe ein problem mit folgender XSL:

...
  <xsl:template name="group">
        <xsl:param name="l" select="1"/>
        <xsl:param name="nodes" select="*"/>
        <xsl:for-each-group select="$nodes" group-starting-with="*[name()=concat('h',$l)]">
            xsl:choose
                <xsl:when test="name()=concat('h',$l)">
                    <xsl:element name="{if($l=1)then 'chapter' else 'section'}">
                        <title>
                            xsl:apply-templates/
                        </title>
                        <xsl:call-template name="group">
                            <xsl:with-param name="l" select="$l+1"/>
                            <xsl:with-param name="nodes" select="current-group()[position()!=1]"/>
                        </xsl:call-template>
                    </xsl:element>
                </xsl:when>
                xsl:otherwise
                    <xsl:apply-templates select="current-group()"/>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:for-each-group>
    </xsl:template>
...(folgend die anweisungen für andere tags)...

Es soll ein einfacher HTML Text mit h1 bis h7 und etlichen anderen Tags in ein docbook transformiert werden. aufbau ist:
<book>
<part>
<chapter><title>hier alle h1</title></chapter>
<section><title>hier die h2</title></section>
...
</part>
</book>

wobei die section's rekursiv in einander verschachtelt sind für die restlichen h's. das klappt auch soweit, nur liegen die verarbeiteten Knoten wie h1 und deren kinder etc. doppelt vor. ein beispiel:

...
<chapter>
<title>hier steht die erste Überschrift</title>
hier steht die erste Überschrift
...
</chapter>

ich hab schon rumprobiert und bin nun der meinung, dass es an der call-template anweisung liegt. liege ich hier richtig und wenn ja, hat jemand eine anregung, wie man den fehler behebt? ich hab nämlich das problem, dass eine transformation bei kleinen probedateien funktioniert, aber bei großen schmiert immer als ab.

mfg flocke