XSLT <xsl:if>要素
<xsl:if> 要素は、XML データに対して条件判断を実行し、指定した条件が成立した場合にのみ対応する内容を出力します。
<xsl:if> 要素
XSLT では、XML ノードの値や状態に基づいて特定の内容を出力するかどうかを決定する必要がある場合、<xsl:if> 要素を使用して条件制御を行うことができます。
構文
<xsl:if test="expression">
... 条件成立時に実行される内容 ...
</xsl:if>
... 条件成立時に実行される内容 ...
</xsl:if>
説明:test 属性は条件式(XPath 式)を指定するために使用され、式の結果が true の場合にのみ、内部の内容が処理され出力されます。
<xsl:if> 要素を配置する場所
通常、<xsl:if> はループ文と組み合わせて使用されます。例えば、<xsl:for-each> 内で各ノードをフィルタリングします:
実例
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd32">
<th>Title</th>
<th>Artist</th>
<th>Price</th>
</tr>
<xsl:for-each select="catalog/cd">
<xsl:if test="price > 10">
<tr>
<td><xsl:value-of select="title"/></td>
<td><xsl:value-of select="artist"/></td>
<td><xsl:value-of select="price"/></td>
</tr>
</xsl:if>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
試してみる »
注意:test 属性は必須であり、その値は XPath 式です。例えば、比較演算(>、<、=)や論理判断などです。
説明:上記の例では、price が 10 より大きい場合にのみ、対応する CD がテーブルに出力されます。
その他の拡張