Einführung in XSLT Teil V

Elemente testen

Es gibt mit XSLT auch die Möglichkeit eine bestimmte Reihenfolge von Elementen zu testen.

Folgendes Stylesheet

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">

<xsl:template match="ITEM[ALBUM]/SONG">
    </xsl:template>

</xsl:stylesheet>

testet, ob es ein Element gibt, das gleichzeitig ein Kindelement von ITEM ist und ein Geschwisterelement ALBUM unmittelbar folgt.

Hier ist interessant: Als Ergebnis würde hier sowohl ARTIST als auch ALBUM angezeigt, nicht aber SONG. Dafür wird im nächsten Abschnitt der Befehl <xsl:value-of select=""/> eingeführt.

Attribute testen

Sollen Elemente auf bestimmte Attribute und Attributwerte getestet werden, so wird folgende Syntax angewendet:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/XSL/Transform/1.0">

<xsl:template match="PLAYLIST/ITEM">
   <xsl:value-of select="ALBUM[@year]"/>
</xsl:template>

</xsl:stylesheet>

Dazu müßten wir unsere PLAYLIST Datei um einen kleinen Eintrag erweitern:

<ALBUM year="1989">Doolittle</ALBUM>

Das Ergebnis dieser Transformation würde Doolittle lauten.

Attribute mit Wert testen

Wäre im oberen Beispiel der Parameter des Attributs bereits be-kannt, so könnte man den Befehl folgendermaßen abändern:

<xsl:value-of select="ALBUM[@year='1989']"/>

Auch die Negativform könnte man hier abfragen: möchte man z.B. nur die Alben angezeigt bekommen, die kein Attribut year besitzen, so müßte man folgendes angeben:

<xsl:value-of select="ALBUM[not(@year)]"/>

Das Ergebnis wäre:

What another man spills Wunden, s. Beine offen 

 

Copyright & Kontakt
jcpohl@gmx.de
© www.jcpohl.de 1999/2000