条件分岐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 >= 20">
<age>成人</age>
</xsl:if>
<xsl:if test="root/data/age < 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なら中身の処理を実行する。
条件式
>=が>=で、<が<という意味になっている。
xmlのデータを取り出す場合は、XPathで指定して要素のデータを取り出して条件式に入れられる。
コード解説まとめ
xml側の年齢を変えてみると、出力結果が変わるので実際に試してみるとよい。
