条件が一つのif〜thenタイプと、選択肢が複数あるタイプがあります。
<xsl:if test="条件"> <!-- ここにtemplateを書く --> </xsl:if>
分岐の条件をtest属性の値として指定します。
<xsl:if test="$countryName='UK'"> <!-- UKの場合に適用される処理 --> </xsl:if>
XSLTにはelseに相当するものがありません。 else節が必要な場合には次に述べるchoose要素を使います。
選択肢が複数ある場合にはchoose要素を使います。 CやJavaのswitch文と似た構造になります。
<xsl:choose> <xsl:when test="条件"> <!-- ここにtemplateを書く --> </xsl:when> ... <xsl:otherwise> <!-- ここにtemplateを書く --> </xsl:otherwise> </xsl:choose>
xsl:when 要素は選択肢の数だけ書けます。 xsl:otherwise 要素は任意で、 ここにはどのxsl:when 要素にもあてはまらない場合のテンプレートを書きます。 これは else節に相当します。
test属性で指定する条件はXPathです。 以下に例を示します。
選択したノードに直接テンプレートを適用することができます。
<xsl:for-each select="式"> <!-- ここにtemplateを書く --> </xsl:for-each>
子要素にsort要素(後述)を用意すれば、 ソートされた順番でテンプレートが適用されていきます。