Holge r: Inhaltsverzeichnis mit xsl

Beitrag lesen

Ein kleine Anregung wie man es machen koennte (ausgabe als xhtml fuer browser ansicht)

  
<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">  
    <xsl:output method="xml"/>  
    <xsl:template match="/">  
        <html>  
            <head/>  
            <body>  
                <h1>Inhaltsverzeichnis</h1>  
                <!-- Schreibe das Inhaltsverzeichnis -->  
                <xsl:apply-templates select="descendant::topic" mode="Inhaltsverzeichnis"/>  
                <!--  
  
                    Mache nachfolgend ....  
  
                    -->  
            </body>  
        </html>  
    </xsl:template>  
    <!-- Templates fuer Ueberschrift -->  
    <xsl:template match="topic" mode="Inhaltsverzeichnis">  
        <p>  
            <!-- Ermittle Ueberschrift Nummer -->  
            <b>  
                <xsl:apply-templates select="current()" mode="Verzeichnisnummer"/>  
            </b>  
            <!-- Schreibe Ueberschrift -->  
            <xsl:text> </xsl:text>  
            <xsl:value-of select="."/>  
        </p>  
    </xsl:template>  
    <!-- Template fuer rekursive Ermittlung -->  
    <xsl:template match="topic" mode="Verzeichnisnummer">  
        <xsl:param name="Index"/>  
        <xsl:choose>  
            <xsl:when test="parent::*/preceding-sibling::topic">  
                <xsl:apply-templates select="parent::*/preceding-sibling::topic[position() = 1]" mode="Verzeichnisnummer">  
                    <xsl:with-param name="Index" select="concat('.',count(preceding-sibling::topic) + 1,$Index)"/>  
                </xsl:apply-templates>  
            </xsl:when>  
            <xsl:otherwise>  
                <xsl:value-of select="concat(count(preceding-sibling::topic) + 1,$Index)"/>  
            </xsl:otherwise>  
        </xsl:choose>  
    </xsl:template>  
</xsl:stylesheet>  

Bedenke jedoch, dass viele Applikationen listenelement haben, bei denen die Nummerierung automatisch vorgenommen wird. Fuer html code siehe z.B.:

<http://de.selfhtml.org/html/text/listen.htm#nummeriert@title=nummerierte Listen>

Gruss, Holge r