Homepage-Webhilfe Event-Banner

Schleifen

Eine Schleife wird in XSLT dazu verwendet, einen bestimmten Vorgang für alle Knoten innerhalb eines Knotensets (Reihe von Knoten) zu wiederholen. Stellen Sie sich vor, Sie haben ein XML-Datei mit dem Element zahlen, welchem mehrere Elemente mit dem Namen zahl untergeordnet sind. Nun wollen Sie diese Zahlenliste in eine HTML-Liste übersetzen. Für die Abarbeitung dieser Zahlenliste könnten Sie nun eine Schleife verwenden, um somit jede Zahl in einem li-Element zu platzieren. Eine Schleife zeichnet sich durch das Element for-each aus. Mit dem Attribut select wird ein Knotenset bzw. ein Pfad spezifiziert. Hier der Code für das vorher erwähnte Beispiel mit der Zahlenliste:

XML-Code:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?xml-stylesheet href="schleife.xsl" type="text/xsl" ?>

<zahlen>
    <zahl>45</zahl>
    <zahl>39</zahl>
    <zahl>22</zahl>
    <zahl>70</zahl>
    <zahl>68</zahl>
    <zahl>12</zahl>
    <zahl>51</zahl>
    <zahl>63</zahl>
    <zahl>27</zahl>
    <zahl>94</zahl>
</zahlen>

XSLT-Code:

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <head>
                <title>Schleife - XSLT Code-Beispiel</title>
                
                <meta charset="utf-8" />
                
                <meta name="robots" content="noindex,nofollow" />
                <meta name="publisher" content="Homepage-Webhilfe" />
            </head>
            
            <body>
                <ul>
                    <xsl:for-each select="/zahlen/zahl">
                        <li><xsl:value-of select="." /></li>
                    </xsl:for-each>
                </ul>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>
VorschauXML:
VorschauHTML:

Falls Sie schon etwas mit XSLT experimentiert haben oder Sie sich noch genau an unsere Erklärung zu Templates erinnern, werden Sie bemerken, dass das obige Beispiel sich auch ohne Schleife und stattdessen mit Templates realisieren lässt. Der Code würde dann wie folgt aussehen:

XML-Code:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<?xml-stylesheet href="schleife-template.xsl" type="text/xsl" ?>

<zahlen>
    <zahl>45</zahl>
    <zahl>39</zahl>
    <zahl>22</zahl>
    <zahl>70</zahl>
    <zahl>68</zahl>
    <zahl>12</zahl>
    <zahl>51</zahl>
    <zahl>63</zahl>
    <zahl>27</zahl>
    <zahl>94</zahl>
</zahlen>

XSLT-Code:

<?xml version="1.0" encoding="UTF-8" ?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">
        <html>
            <head>
                <title>Schleifen-Alternative - XSLT Code-Beispiel</title>
                
                <meta charset="utf-8" />
                
                <meta name="robots" content="noindex,nofollow" />
                <meta name="publisher" content="Homepage-Webhilfe" />
            </head>
            
            <body>
                <xsl:apply-templates />
            </body>
        </html>
    </xsl:template>
    
    <xsl:template match="zahlen">
        <ul>
            <xsl:apply-templates />
        </ul>
    </xsl:template>
    
    <xsl:template match="zahl">
        <li><xsl:value-of select="." /></li>
    </xsl:template>
</xsl:stylesheet>
VorschauXML:
VorschauHTML:

Benötige ich dann gar keine Schleifen? Prinzipiell gesehen, können Schleifen immer durch die Template-Technik ersetzt werden, in einigen Fällen ist jedoch die Verwendung von Templates wesentlich umständlicher. Vorteile von Templates sind jedoch die Wiederverwendbarkeit sowie der klare Verlauf bei der Abarbeitung der XML-Daten (von Template, zu Template, zu Template, ...). Schleifen haben hingegen den Vorteil, dass sie in XSLT-Dokumenten vom Programmierer leichter gelesen werden können. Dies ist vor allem von Vorteil, wenn Ihr XSLT-Dokument sehr komplex ist. Letzten Endes ist es natürlich auch wieder „Geschmackssache“. Im Allgemeinen ist jedoch die Verwendung von Templates in XSLT zu bevorzugen.

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK