Julian von Mendel: Nummerierung im Inhaltsverzeichnis - xsl:number

Beitrag lesen

Hi,

ich muss mit XSLT ein Inhaltsverzeichnis nummerieren. Folgende XML-Quelldaten:

[code:xml]
<chapter name="Kapitelname1">
  <section>
     <slide title="Seitenname1">Inhalt</slide>
     <slide title="Seitenname2">Inhalt</slide>
  </section>
  <section>
     <slide title="Seitenname3">Inhalt</slide>
     <slide title="Seitenname4">Inhalt</slide>
  </section>
</chapter>
<chapter name="Kapitelname2">
  <section>
     <slide title="Seitenname5">Inhalt</slide>
     <slide title="Seitenname6">Inhalt</slide>
  </section>
  <section>
     <slide title="Seitenname7">Inhalt</slide>
     <slide title="Seitenname8">Inhalt</slide>
  </section>
</chapter>
[/code]

Ich möchte dass sich daraus ein Inhaltsverzeichnis folgender Art ergibt:

Kapitel 1: Kapitelname1
1.1 Seitenname1
1.2 Seitenname2
1.3 Seitenname3
1.4 Seitenname4
Kapitel 2: Kapitelname2
2.1 Seitenname5
2.2 Seitenname6
2.3 Seitenname7
2.4 Seitenname8

Ich habe jetzt in etwa sowas:

[code:xml]
<xsl:for-each select="/slides/chapter">
  Kapitel <xsl:number level="multiple" count="chapter|slide" format="1.1" />: <xsl:value-of select="@name" />
  <xsl:for-each select="section">
    <xsl:for-each select="slide">
       <xsl:number level="multiple" count="chapter|slide" format="1.1" />
       <xsl:value-of select="child::title" />
    </xsl:for-each>
  </xsl:for-each>
</xsl:for-each>
[/code:xml]

Als Ergebnis bekomme ich:

Kapitel 1: Kapitelname1
1.1 Seitenname1
1.2 Seitenname2
1.1 Seitenname3
1.2 Seitenname4
Kapitel 2: Kapitelname2
2.1 Seitenname5
2.2 Seitenname6
2.1 Seitenname7
2.2 Seitenname8

Scheinbar startet er bei jeder section neu. Die sections dienen nur zur Untergruppierung logisch zusammengehörender slides - das XML-Format kann ich außerdem nicht mehr ändern, es gibt schon mehrere hundert Seiten. Jetzt weiß ich nicht wie ich meine
<xsl:number level="multiple" count="chapter|slide" format="1.1" />
-Zeile umformen muss, damit sie unabhängig von den sections funktioniert.

Hat jemand einen Tipp für mich?

Vielen Dank
Julian

--
"Real programmers can write assembly code in any language." - Larry Wall