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