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
| Operator | XPath‑Schreibweise | Bedeutung |
|---|---|---|
| = | = | Gleich |
| != | != | Ungleich |
| < | < | Kleiner als (< nicht direkt schreiben, Escaping erforderlich) |
| > | > | Größer als (> nicht direkt schreiben, Escaping erforderlich) |
Beispiel: CDs mit Preis kleiner als 10 herausfiltern
<xsl:for-each select="catalog/cd[price < 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 > 14]">
<li><xsl:value-of select="name"/>;<xsl:value-of select="age"/></li>
</xsl:for-each>Code-Sprache: HTML, XML (xml)
Schleife
Previous: XSLT‑Beispiel