<xsl:otherwise>
要素および <xsl:when>
要素と組み合わせて使用することで複数の条件をテストします。
<xsl:choose>
</xsl:choose>
要素情報
解説
<xsl:choose>
要素の子要素である <xsl:when>
要素のいずれかで test
属性がソース データの条件と完全に一致するまで、または <xsl:otherwise>
要素に達するまで、上から下へ <xsl:when>
要素がテストされます。<xsl:when>
要素または <xsl:otherwise>
要素が選択されると、<xsl:choose>
ブロックが終了します。明示的な break ステートメントまたは exit ステートメントは必要ありません。
単純な条件付きテストの場合は、<xsl:if>
要素を使用します。
例
次の例では、<order>
要素のテンプレートを表示し、各 <order>
の内容の前にサイズ インジケータを挿入します。このサイズ インジケータには、各 <order>
要素内の <total>
要素の値が使用されます。合計値が 10 未満の場合、"(small)
" というテキストが追加されます。合計値が 20 未満の場合、"(medium)
" というテキストが追加されます。合計値が 20 以上の場合、"(large)
" というテキストが追加されます。
XML ファイル (order.xml)
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="refchoose.xsl" ?>
<orders>
<order>
<lineitem/>
<lineitem/>
<total>9</total>
</order>
<order>
<lineitem/>
<lineitem/>
<total>19</total>
</order>
<order>
<lineitem/>
<lineitem/>
<total>29</total>
</order>
</orders>
XSLT ファイル (refchoose.xsl)
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="order">
<xsl:choose>
<xsl:when test="total < 10">
(small)
</xsl:when>
<xsl:when test="total < 20">
(medium)
</xsl:when>
<xsl:otherwise>
(large)
</xsl:otherwise>
</xsl:choose>
<xsl:apply-templates />
<BR/>
</xsl:template>
</xsl:stylesheet>
出力
(small) 9
(medium) 19
(large) 29