条件分岐chooseの概要
<xsl:choose>要素を使うと、if~elseif~elseのような形で使える。
サンプルコード
変換させるxml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="sample.xsl"?> <root> <data> <name>吉田</name> <age>-11</age> <department>開発部</department> </data> </root>
XSLT
<?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <xsl:choose> <xsl:when test="root/data/age >= 20"> <age>成人</age> </xsl:when> <xsl:when test="root/data/age < 20 and root/data/age >= 0"> <age>未成年</age> </xsl:when> <xsl:otherwise> <age>不正な値です。</age> </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet>
変換結果
<?xml version="1.0" encoding="UTF-8"?> <age>不正な値です。</age>
解説
<xsl:choose>要素の使い方
<xsl:choose>要素内で、<xsl:when>要素と<xsl:otherwise>要素を使う
<xsl:when>がif、<xsl:otherwise>がelseといった意味合い。
使い方は<xsl:if>と同じなので下記参照。
サンプルコード解説
xml側のageデータに20以上なら成人、20未満なら未成年、それ以外なら不正な値として出力される。