Schleife

Kern‑Tags

1. <xsl:value-of>

Zweck: Extrahiert den Textinhalt eines angegebenen XML‑Knotens und gibt ihn im Ergebnisdokument aus.

<!-- Holt den title‑Wert des ersten catalog/cd‑Elements (ohne Schleife nur erster Datensatz) -->
<xsl:value-of select="catalog/cd/title" />Code-Sprache: HTML, XML (xml)

Ohne die Schleife <xsl:for-each> wird nur der erste passende Knoten ausgewertet, eine vollständige Datendurchlauf ist nicht möglich.

2. <xsl:for-each>

Zweck: Iteriert über eine Gruppe passender XML‑Knoten und verarbeitet mehrere Datensätze stapelweise.

<xsl:for-each select="class/student">
    <li><xsl:value-of select="name"/><xsl:value-of select="age"/></li>
</xsl:for-each>Code-Sprache: HTML, XML (xml)

XPath‑Filter‑Syntax

Hänge nach dem select‑Pfad [Bedingung] an, um Knoten zu filtern und Datenauswahl zu realisieren

<!-- Gibt nur cd‑Einträge aus, bei denen artist gleich Bob Dylan ist -->
<xsl:for-each select="catalog/cd[artist='Bob Tom']">Code-Sprache: HTML, XML (xml)

Unterstützte Operatoren

OperatorXPath‑SchreibweiseBedeutung
==Gleich
!=!=Ungleich
<&lt;Kleiner als (< nicht direkt schreiben, Escaping erforderlich)
>&gt;Größer als (> nicht direkt schreiben, Escaping erforderlich)

Beispiel: CDs mit Preis kleiner als 10 herausfiltern

<xsl:for-each select="catalog/cd[price &lt; 10]">Code-Sprache: HTML, XML (xml)

Vorheriges Beispiel

student.xsl
<?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>
</head>
<body>
    <ul>
        <!-- Alle student‑Knoten durchlaufen -->
        <xsl:for-each select="class/student">
            <li><xsl:value-of select="name"/><xsl:value-of select="age"/></li>
        </xsl:for-each>
    </ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>Code-Sprache: HTML, XML (xml)

Zugehöriges XML(student.xml)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="student.xsl"?>
<class>
    <student>
        <name>Jack</name>
        <age>16</age>
    </student>
    <student>
        <name>Jim</name>
        <age>12</age>
    </student>
</class>Code-Sprache: HTML, XML (xml)

Filter hinzufügen

Nur Schüler ausgeben, die älter als 14 Jahre sind

<xsl:for-each select="class/student[age &gt; 14]">
    <li><xsl:value-of select="name"/><xsl:value-of select="age"/></li>
</xsl:for-each>Code-Sprache: HTML, XML (xml)

Schleife

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert