XSLT: Anweisungen


... [ Seminar XML und Haskell ] ... [ XSLT ] ... [ Erzeugen der Ausgabe ] ...

Übersicht: Anweisungen


if

Natürlich ist in XSLT auch das bedingte Ausführen von Aktionen möglich. Die einfachste Möglichkeit dazu ist die if-Anweisung, die einen XPath-Ausdruck auswertet:

  <xsl:template>
    <xsl:if select="1 == 0">
      1 ist 0 !!
    </xsl:if>
  </xsl:template>
Nach oben

choose

Bei Bedingungen mit mehr als einer Alternative findet die choose-Anweisung Verwendung:

  <xsl:template>
    <xsl:choose>
      <xsl:when select="1 == 0">
        1 ist 0 !!
      </xsl:when>

      <xsl:when select="1 == 2">
        1 ist 2 !!
      </xsl:when>

      <xsl:otherwise>
        richtig gerechnet..
      </xsl:otherwise>
    </xsl:if>
  </xsl:template>
Nach oben

for-each

Mit for-each kann man über die Elemente einer Menge von Knoten iterieren:

  <xsl:template>
    <xsl:for-each select="//img">
      Ein Bild
    </xsl:for-each>
  </xsl:template>
Nach oben

sort

Als Erweiterung zur Iteration kann man mit Hilfe von sort die Reihenfolge der Iteration bestimmen:

  <xsl:template>
    <xsl:for-each select="//img">
      <xsl:sort select="@src" order="ascending" data-type="text" case-order="upper-first">
        Ein Bild
      </xsl:sort>
    </xsl:for-each>
  </xsl:template>

select gibt dabei an, wonach sortiert wird (hier: src-Attribut),
order gibt die Reihenfolge an (ascending / descending),
data-type gibt den Datentyp an (text / number),
case-order gibt an, ob Großbuchstaben vor oder nach Kleinbuchstaben sortiert werden (upper-first / lower-first)

Nach oben

... [ Seminar XML und Haskell ] ... [ XSLT ] ... [ Anweisungen ] ...