条件分岐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側の年齢を変えてみると、出力結果が変わるので実際に試してみるとよい。