条件処理 <xsl:if>のサンプル

XML文書内容によって、表示内容を変える場合に使われる。

★書式★
  <xsl:if test = "条件式">
      (テンプレート内容)
  </xsl:if>

*条件式を評価し、真なら(テンプレート内容)を処理し、偽なら何もしない。

[サンプルXML文書を表示](下のフレームに)

XMLソース

<?xml version="1.0" encoding="Shift_JIS" ?>
<?xml-stylesheet type="text/xsl" href="if01.xsl"?>
<start>
<ken>鳥取県
  <city>倉吉市</city>
  <tomi>95</tomi>
</ken>
<ken>大阪府
  <city></city>
  <tomi>40</tomi>
</ken>
<ken>兵庫県
  <city>西宮市</city>
  <tomi>62</tomi>
</ken>
<end>以上です(03/10/15)</end>
</start>

XSLソース

<?xml version="1.0" encoding="Shift_Jis"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="Shift_JIS"/>
<xsl:template match="/">
<xsl:if test="not(title)"><H2><center>「条件処理ifの使用例」</center></H2></xsl:if>
<xsl:apply-templates select="start/ken" />
<xsl:apply-templates select="start/ken/city" />
<xsl:apply-templates select="start/ken/tomi" />
</xsl:template>
<xsl:template match="start/ken">
<xsl:if test="city=''">
<font color="red"><xsl:value-of select="." />(市は記載されてません)</font><BR/>
</xsl:if>
<xsl:if test="city[not(.='')]">
<font color="blue"><xsl:value-of select="." /></font><BR/>
</xsl:if>
</xsl:template>
<xsl:template match="start/ken/city">
<xsl:if test=".='倉吉市'">
<HR/>
<font color="blue"><xsl:value-of select="." /></font>の富裕度は<xsl:value-of select="../tomi" />
</xsl:if>
</xsl:template>
<xsl:template match="start/ken/tomi">
<xsl:if test=".&lt;50">
<HR/>
富裕度は<font color="green"><xsl:value-of select="." /></font>
</xsl:if>
</xsl:template>
</xsl:stylesheet>

end(03/10/15)