Einfache Nummerierung

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 2.)

Um eine Nummerierung zu erhalten, müssen Sie im einfachsten Fall gar keine besonderen Maßnahmen ergreifen. Soll zum Beispiel eine nummerierte Liste in HTML ausgegeben werden, so können Sie die eigentliche Nummerierung dem Browser überlassen und sich darauf beschränken, HTML-<li>-Elemente innerhalb eines <ol>-Containers zu erzeugen:

<xsl:template match="liste">
  <ol><xsl:apply-templates/></ol>
</xsl:template>
<xsl:templates match="listenelement">
  <li><xsl:apply-templates/></li>
</xsl:template>

Diese simple Herangehensweise hat den Vorteil, dass sie völlig unabhängig davon ist, ob die Verarbeitung der Inhalte in Dokumentreihenfolge erfolgt. Eine Außer-der-Reihe-Verarbeitung kann andernorts nämlich durchaus Pro­bleme aufwerfen, wie noch gezeigt wird. Für das Buchbeispiel wäre dieser Ansatz denkbar:

<xsl:template match="buchhandel">
  <ol><xsl:apply-templates select="buch"/></ol>
</xsl:template>
<xsl:template match="buch">
  <li>
    <xsl:apply-templates/>
    <xsl:choose>
      <xsl:when test="@isbn != ''">
        <br/>(ISBN: <xsl:value-of select="@isbn"/>)
      </xsl:when>
      <xsl:otherwise>
        <br/>(ISBN-Nummer liegt nicht vor.)
      </xsl:otherwise>
    </xsl:choose>
  </li>
</xsl:template>

Code-Beispiel: kap02/2.03.1/buchhandel-liste.xsl (Auszug).

Der Nachteil ist natürlich, dass die Methode an HTML oder XHTML als Ergeb­nisformat gebunden ist. Zudem gibt es auch Fälle, in denen eine komplexere, verschachtelte Nummerierung erforderlich ist, wie z. B. 1.A iii) oder Ähnliches. Dann müssen schwerere Geschütze aufgefahren werden.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn