スポンサーリンク

[XSLT] 条件分岐ifの使い方

条件分岐ifの概要

条件分岐を行うには、<xsl:if>を使う。
else文みたいなのはなし。
使いたい場合はchoose要素でできる。

サンプルコード

変換させるxml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="sample.xsl"?>
<root>
    <data>
        <name>吉田</name>
        <age>19</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:if test="root/data/age &gt;= 20">
            <age>成人</age>
        </xsl:if>
        <xsl:if test="root/data/age &lt; 20">
            <age>未成年</age>
        </xsl:if>        
    </xsl:template>
</xsl:stylesheet>

変換結果

<?xml version="1.0" encoding="UTF-8"?>
<age>未成年</age>

解説

<xsl:if>の使い方

<xsl:if>要素のtest属性に条件式を記載し、TrueかFalseを判断し、Trueなら中身の処理を実行する。

条件式

&gt;=が>=で、&lt;が<という意味になっている。

xmlのデータを取り出す場合は、XPathで指定して要素のデータを取り出して条件式に入れられる。

コード解説まとめ

xml側の年齢を変えてみると、出力結果が変わるので実際に試してみるとよい。

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