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