XSLT-Elemente

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

 

 

xsl:number

Mit der Instruktion xsl:number können Aufzählungen wie geordnete Listenpunkte (wie 1., 2., 3., etc.), Kapitelnummern mit Unterkapiteln (1., 1.1, 1.2, 1.3, 1.3.1, 1.3.2, etc.) und verschiedene andere Nummerierungen generiert werden. Hierbei erzeugt jedes xsl:number-Element als Ausgabe die entsprechende Nummer. Die Nummer wird anhand der Attribute generiert. Hierbei sind die wichtigsten das Attribut count und format.

Das Attribut count gibt einen Vorfahren des momentanen Kontextknotens an dessen position in einer Knotensequenz ermittelt wird, die aus allen gleichnamigen Geschwisterelementen dieses Vorfahrens besteht. Ist beispielsweise der Kontextknoten das Element <article> und im count-Attribut der Vorfahre section genannt, wird der näheste section-Vorfahre gesucht. Als Nummer wird nun die Position ausgegeben die der Vorfahre im Vergleich zu seinen gleichnamigen Geschwisterelementen hat.

Das Format der Nummer kann im format Attribut angegeben werden. Hier wird ein String übergeben, der ein Zeichen einer Reihe enthält (Reihe: a b c d e f g h..., 1 2 3 4 5... oder I II III IV V...). Dabei muss nicht immer nur das erste Zeichen dieser Reihen im String stehen, jedoch beginnt für die Ausgabe von xsl:number die Zählung mit dem angegebenen Zeichen. Zusätzlich können noch "Satzzeichen" ( . , - ! ; : ) ( / (space) etc.) im String angegeben werden, welche bei jeder Nummer gleich ausgegeben werden.

Zusätzlich kann mit dem Attribut level="multi" eine hierarchische Nummerierung (also 1., 1.1, 1.2, 1.3 etc.) ermöglicht werden (siehe Beispiele).

Attribute

level, count, from, value, format, lang, letter-value, grouping-separator, grouping-size, select, ordinal

Beispiel 1

<?xml version="1.0"encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="/">
        <root>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="1 " count="stadt"></xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="I. " count="stadt"></xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="Ww: " count="stadt"></xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="Ww: " ordinal="-e" lang="de" count="stadt">
            </xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
        </root>
    </xsl:template>
</xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?>
<root>
    <ul>
        <li>1 Berlin</li>
        <li>2 Hamburg</li>
        <li>3 Paris</li>
        <li>4 Ludwigshafen</li>
    </ul>
    <ul>
        <li>I. Berlin</li>
        <li>II. Hamburg</li>
        <li>III. Paris</li>
        <li>IV. Ludwigshafen</li>
    </ul>
    <ul>
        <li>One: Berlin</li>
        <li>Two: Hamburg</li>
        <li>Three: Paris</li>
        <li>Four: Ludwigshafen</li>
    </ul>
    <ul>
        <li>Erste: Berlin</li>
        <li>Zweite: Hamburg</li>
        <li>Dritte: Paris</li>
        <li>Vierte: Ludwigshafen</li>
    </ul>
</root>

Beispiel 2

<?xml version="1.0"encoding="UTF-8"?>
<root>
    <stadt land="de">
        <name>Berlin</name>
        <einwohner>3420786</einwohner>
        <fläche>891.85</fläche>
        <gemeinde>11000000</gemeinde>
        <bewertung>5</bewertung>
    </stadt>
    <stadt land="de">
        <name>Hamburg</name>
        <einwohner>1773218</einwohner>
        <fläche>755.264</fläche>
        <gemeinde>02000000</gemeinde>
        <bewertung>4</bewertung>
    </stadt>
    <stadt land="fr">
        <name>Paris</name>
        <einwohner>2166200</einwohner>
        <fläche>105.40</fläche>
        <bewertung>3</bewertung>
    </stadt>
    <stadt land="de">
        <name>Ludwigshafen</name>
        <einwohner>163777</einwohner>
        <fläche>77.68</fläche>
        <bewertung>-3</bewertung>
    </stadt>
</root>
<?xml version="1.0"encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="/">
        <root>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="1 " count="stadt"></xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="I. " count="stadt"></xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="Ww: " count="stadt"></xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
            <ul>
                <xsl:for-each select="root/stadt">
                    <li>
                        <xsl:number format="Ww: " ordinal="-e" lang="de" count="stadt">
            </xsl:number>
                        <xsl:value-of select="name"></xsl:value-of>
                    </li>
                </xsl:for-each>
            </ul>
        </root>
    </xsl:template>
</xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?>
<root>
    <ul>
        <li>1 Berlin</li>
        <li>2 Hamburg</li>
        <li>3 Paris</li>
        <li>4 Ludwigshafen</li>
    </ul>
    <ul>
        <li>I. Berlin</li>
        <li>II. Hamburg</li>
        <li>III. Paris</li>
        <li>IV. Ludwigshafen</li>
    </ul>
    <ul>
        <li>One: Berlin</li>
        <li>Two: Hamburg</li>
        <li>Three: Paris</li>
        <li>Four: Ludwigshafen</li>
    </ul>
    <ul>
        <li>Erste: Berlin</li>
        <li>Zweite: Hamburg</li>
        <li>Dritte: Paris</li>
        <li>Vierte: Ludwigshafen</li>
    </ul>
</root>

Beispiel 3

<?xml version="1.0"encoding="UTF-8"?>
<root>
    <land name="Deutschland">
        <stadt land="de">
            <name>Berlin</name>
            <einwohner>3420786</einwohner>
            <fläche>891.85</fläche>
            <gemeinde>11000000</gemeinde>
        </stadt>
        <stadt land="de">
            <name>Ludwigshafen</name>
            <einwohner>163777</einwohner>
            <fläche>77.68</fläche>
        </stadt>
        <stadt land="de">
            <name>Hamburg</name>
            <einwohner>1773218</einwohner>
            <fläche>755.264</fläche>
            <gemeinde>02000000</gemeinde>
        </stadt>
    </land>
    <land name="Frankreich">
        <stadt land="fr">
            <name>Paris</name>
            <einwohner>2166200</einwohner>
            <fläche>105.40</fläche>
        </stadt>
        <stadt land="fr">
            <name>Toulouse</name>
            <einwohner>437100</einwohner>
            <fläche>  118.30</fläche>
        </stadt>
    </land>
</root>
<?xml version="1.0"encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:template match="/">
        <root>
            <ul>
                <xsl:for-each select="root/land/stadt">
                    <li>
                        <xsl:number level="multiple" format="1.1.
             " count="land | stadt">
            </xsl:number>
                        <xsl:value-of select="name">
            </xsl:value-of> 
            (<xsl:value-of select="../@name"></xsl:value-of>)</li>
                </xsl:for-each>
            </ul>
            <ul>
                <xsl:for-each select="root/land">
                    <li>
                        <xsl:number level="single" format="1. " count="land">
            </xsl:number>
                        <xsl:value-of select="@name"></xsl:value-of>
                    </li>
                    <xsl:for-each select="stadt">
                        <li>
                          <xsl:number level="multiple" format="1.a)
              " count="stadt | land">
              </xsl:number>
                            <xsl:value-of select="name"></xsl:value-of>
                        </li>
                    </xsl:for-each>
                </xsl:for-each>
            </ul>
        </root>
    </xsl:template>
</xsl:stylesheet>
<?xml version="1.0"encoding="UTF-8"?>
<root>
    <ul>
        <li>1.1. Berlin (Deutschland)</li>
        <li>1.2. Ludwigshafen (Deutschland)</li>
        <li>1.3. Hamburg (Deutschland)</li>
        <li>2.1. Paris (Frankreich)</li>
        <li>2.2. Toulouse (Frankreich)</li>
    </ul>
    <ul>
        <li>1. Deutschland</li>
        <li>1.a) Berlin</li>
        <li>1.b) Ludwigshafen</li>
        <li>1.c) Hamburg</li>
        <li>2. Frankreich</li>
        <li>2.a) Paris</li>
        <li>2.b) Toulouse</li>
    </ul>
</root>

 

 

  > nach oben
   
  > zurück zur alphabetischen Liste der XSLT Elemente