スポンサーリンク

[XSLT] 条件分岐chooseの使い方(if~elseif~else)

条件分岐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 &gt;= 20">
                <age>成人</age>
            </xsl:when>
            <xsl:when test="root/data/age &lt; 20 and root/data/age &gt;= 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未満なら未成年、それ以外なら不正な値として出力される。

XSLT
スポンサーリンク
シェアする
trelab